我試圖端口實時Thread_Metric從ExpressLogic在POSIX,以基準PREEMPT_RT補丁的Linux,Xenomai RTAI和我的論文。他們提供了一個C源文件具有以下功能,你必須以實現對基準的工作:功能,這需要並行線程作爲輸入,並暫停其
void tm_initialize(void (*test_initialization_function)(void));
int tm_thread_create(int thread_id, int priority, void (*entry_function)(void));
int tm_thread_resume(int thread_id);
int tm_thread_suspend(int thread_id);
void tm_thread_relinquish(void);
void tm_thread_sleep(int seconds);
int tm_queue_create(int queue_id);
int tm_queue_send(int queue_id, unsigned long *message_ptr);
int tm_queue_receive(int queue_id, unsigned long *message_ptr);
int tm_semaphore_create(int semaphore_id);
int tm_semaphore_get(int semaphore_id);
int tm_semaphore_put(int semaphore_id);
int tm_memory_pool_create(int pool_id);
int tm_memory_pool_allocate(int pool_id, unsigned char **memory_ptr);
int tm_memory_pool_deallocate(int pool_id, unsigned char *memory_ptr);
現在,我試圖執行tm_thread_suspend和tm_thread_resume功能,採取並行線程作爲輸入。我知道,你可以暫停與和的pthread_mutex_lock程序調用pthread_cond_wait一個並行線程,但你必須從線程start_function調用這些。我對這類東西很陌生,而且我的頭腦也很不自信。任何幫助表示讚賞。
'pthread_suspend'不是並行線程功能,它的一些供應商擴展。 – 2011-04-20 22:50:13
'pthread_suspend()和pthread_continue()由X /開啓開發的。' – bmargulies 2011-04-21 01:18:17
但尚未納入標準。你或許可以深入理解基本原理,找到一個很好的理由。 – 2011-04-21 01:21:50