mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-21 02:06:14 +08:00
add pthread magic assert.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1112 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
@@ -55,13 +55,15 @@ static posix_mq_t *posix_mq_find(const char* name)
|
||||
|
||||
for (iter = posix_mq_list; iter != RT_NULL; iter = iter->next)
|
||||
{
|
||||
object = (rt_object_t)&(iter->mq);
|
||||
object = (rt_object_t)(iter->mq);
|
||||
|
||||
if (strncmp(object->name, name, RT_NAME_MAX) == 0)
|
||||
{
|
||||
return iter;
|
||||
}
|
||||
}
|
||||
|
||||
return RT_NULL;
|
||||
}
|
||||
|
||||
int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat,
|
||||
@@ -193,13 +195,6 @@ ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_pri
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* permission check */
|
||||
if (!(mqdes->flags & O_RDONLY))
|
||||
{
|
||||
rt_set_errno(EBADF);
|
||||
return -1;
|
||||
}
|
||||
|
||||
result = rt_mq_recv(mqdes->mq->mq, msg_ptr, msg_len, RT_WAITING_FOREVER);
|
||||
if (result == RT_EOK)
|
||||
return msg_len;
|
||||
@@ -218,13 +213,6 @@ int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* permission check */
|
||||
if (!(mqdes->flags & O_WRONLY))
|
||||
{
|
||||
rt_set_errno(EBADF);
|
||||
return -1;
|
||||
}
|
||||
|
||||
result = rt_mq_send(mqdes->mq->mq, (void*)msg_ptr, msg_len);
|
||||
if (result == RT_EOK)
|
||||
return 0;
|
||||
@@ -245,12 +233,6 @@ ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
|
||||
rt_set_errno(EINVAL);
|
||||
return -1;
|
||||
}
|
||||
/* permission check */
|
||||
if (!(mqdes->flags & O_RDONLY))
|
||||
{
|
||||
rt_set_errno(EBADF);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tick = libc_time_to_tick(abs_timeout);
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ int pthread_create (pthread_t *tid, const pthread_attr_t *attr,
|
||||
ptd->canceled = 0;
|
||||
ptd->cancelstate = PTHREAD_CANCEL_DISABLE;
|
||||
ptd->canceltype = PTHREAD_CANCEL_DEFERRED;
|
||||
ptd->magic = PTHREAD_MAGIC;
|
||||
|
||||
if (attr != RT_NULL) ptd->attr = *attr;
|
||||
else
|
||||
|
||||
@@ -48,9 +48,14 @@ typedef struct _pthread_data _pthread_data_t;
|
||||
|
||||
rt_inline _pthread_data_t* _pthread_get_data(pthread_t thread)
|
||||
{
|
||||
_pthread_data_t* ptd;
|
||||
RT_ASSERT(thread != RT_NULL);
|
||||
|
||||
return (_pthread_data_t*)thread->user_data;
|
||||
ptd = (_pthread_data_t*)thread->user_data;
|
||||
RT_ASSERT(ptd != RT_NULL);
|
||||
RT_ASSERT(ptd->magic == PTHREAD_MAGIC);
|
||||
|
||||
return ptd;
|
||||
}
|
||||
|
||||
extern int libc_time_to_tick(const struct timespec *time);
|
||||
|
||||
Reference in New Issue
Block a user