Exemple #1
0
bool fiber::kill(void)
{
	if (f_ == NULL)
		return false;
	acl_fiber_kill(f_);
	f_ = NULL;
	return true;
}
Exemple #2
0
bool fiber::kill(void)
{
	if (f_ == NULL)
		return false;
	else if (acl_fiber_killed(f_))
		return true;
	acl_fiber_kill(f_);
	return true;
}
Exemple #3
0
static void fiber_monitor(void)
{
    int n;

    // 等待消息通知
    __chan_monitor.pop(n);

    printf("--- kill fiber_accept ---\r\n");
    // 杀死监听协程
    acl_fiber_kill(__fiber_accept);

    printf("--- stop fiber schedule ---\r\n");
    // 停止协程调度过程
    acl_fiber_schedule_stop();
}
Exemple #4
0
static void fiber_wait(ACL_FIBER *, void *ctx)
{
	ACL_CHANNEL *chan = (ACL_CHANNEL *) ctx;
	unsigned long n = acl_channel_recvul(chan);
	
	printf("----fiber-%d: get n: %lu---\r\n", acl_fiber_self(), n);

	for (int i = 0; __workers[i] != NULL; i++)
	{
		printf("kill fiber-%d\r\n", acl_fiber_id(__workers[i]));
		acl_fiber_kill(__workers[i]);
	}

	printf("---- fiber schedul stopping now ----\r\n");
	acl_fiber_schedule_stop();
}