gcc 4.7.2
c89
你好使用互斥鎖,關鍵代碼
我只是想知道如何申請互斥鎖下面的代碼片段。
是否有任何規則應該遵循,因爲我不想鎖定,因爲這會阻止此函數中的其他線程。因爲這會讓事情減緩。
我用下面的CFLAGS編譯:
-Wall -Wextra -g -m32 -O2 -D_DEBUG -D_THREAD_SAFE -D_REENTRANT -D_LARGEFILE64_SOURCE
代碼片斷
static void* APR_THREAD_FUNC timeout_duration(apr_thread_t *thd, void *data)
{
apr_status_t rv = 0;
channel_t *channel = NULL;
/*
APPLY LOCK HERE
*/
channel = (channel_t*)data;
/* simulate some work */
apr_sleep(5000000);
LOG_INFO("Channel id [ %d ] Channel name [ %s ] Delay time [ %d ]",
channel->id,
channel->name,
(apr_int32_t)channel->delay_time);
/*
UNLOCK HERE
*/
return NULL;
}
我通過通道作爲傳遞到輸入功能的數據。但是,這不僅僅是一個副本,所以我不需要擔心它?
ptr!=副本數據的副本。 –