代码拉取完成,页面将自动刷新
同步操作将从 linuxmail/lib-zo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* ================================
* eli960@qq.com
* http://linxumail.cn/
* 2018-07-10
* ================================
*/
#include "coroutine.h"
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <fcntl.h>
static int co_count = 0;
static void *file_do(void *arg)
{
char *fn = "a.txt";
int fd = open(fn, O_RDWR|O_CREAT|O_TRUNC, 0777);
if (fd == -1) {
fprintf(stderr, "can not open %s(%m)\n", fn);
return 0;
}
for (int i=0;i < 100; i++) {
if (write(fd, "0123456789", 8) != 8) {
fprintf(stderr, "write error\n");
}
if (lseek(fd, 0, SEEK_SET) == (off_t)-1) {
fprintf(stderr, "lseek error (%m)");
}
sleep(1);
}
close(fd);
co_count--;
if (co_count == 0) {
fprintf(stderr, "zcoroutine_base_stop_notify\n");
zcoroutine_base_stop_notify(0);
}
return 0;
}
int main(int argc, char **argv)
{
int i;
zcoroutine_base_init();
zvar_coroutine_block_pthread_count_limit = 3;
zvar_coroutine_fileio_use_block_pthread = 1;
co_count = 10;
for (i=0;i<co_count;i++) {
zcoroutine_go(file_do, 0, 0);
}
printf("exit after 100s\n");
printf("file io running in worker pthread\n");
printf("strace -p pthrad_id\n");
zcoroutine_base_run(0);
zcoroutine_base_fini();
sleep(1);
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。