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;
}
我将通道作为传递给入口函数的数据传递。但是,这不只是一个副本,所以我真的不需要担心吗?