mco_async_event_release
接口适用于实时数据库 RT 。
解除所有等待指定事件的线程的阻塞状态。
此函数会解除所有在由 event_id
引用的事件上等待的线程的阻塞状态。
MCO_RET mco_async_event_release(
/*IN*/ mco_db_h db,
/*IN*/ int event_id
);
参数
db
mco_db_h
由 mco_db_connect()
建立的数据库句柄。
event_id
int
在生成的接口头文件 dbname.h
中分配给该事件的标识符。
返回
MCO_S_OK
该事件已成功发布。
MCO_E_INVALID_HANDLE
数据库句柄无效。
MCO_S_EVENT_RELEASED
事件已经发布。
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
MCO_RET Event_NewHndlr( sample_task_t * descriptor )
{
int count = 0;
/* use the connection created by sample_start_connected_task() */
mco_db_h db = descriptor->db_connection;
while ( MCO_S_OK == mco_async_event_wait(db, MCO_EVENT_newEvent) )
{
printf("\tNewEventHandler call %d\n", count);
count++;
}
printf("\tExiting NewEventHandler. Number of calls : %d\n", count);
}
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev;
mco_db_params_t db_params;
mco_trans_h t;
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
...
_beginthread( Event_NewHndlr, 0, (void*)db );
Sleep(100);
...
rc = mco_async_event_release(db, MCO_EVENT_newEvent);
...
}
}
...
}
文件
- 头文件:
mco.h
- 源文件:
mcoevasy.c
- 库:
libmcolib.a