网站首页
本站精华
免费下载
游客:
注册
|
登录
|
会员
|
搜索
|
帮助
LoveUnix
»
编程开发 & Rational
» 关于
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 关于
zerocold
LU新生
UID 361
精华 0
积分 5
帖子 10
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-10-8
#1
大
中
小
使用道具
发表于 2004-4-16 18:23
资料
个人空间
短消息
加为好友
在aix4.3上写了个服务段程序,代码大致如下:
CODE
int DoDeal()
{
for(;;)
{
if (accept() < 0)
{
fprintf(stderr, "errmsg = [%d][%s]\n", errno, strerror(errno));
return -1;
}
Recv();
CloseTcp();
}
}
int main()
{
int i;
CreateLisntenSock();
for(i = 0; i < 10; i ++)
{
if (fork() == 0)
{
DoDeal();
exit(1);
}
}
exit(0);
}
当客户端向服务端发起请求时,服务程序的其中一个进程可以正常处理客户端请求,其他子进程由于"惊群"导致 accept 出错(errno为EAGAIN 或者 ENOTCONN),但理论上 accept 由于 "惊群" 应该会重新进入休眠状态,但在这里且出错, 不知道是不是操作系统的问题,对accept加锁就没问题了。 同样的程序(没有对accept加锁)在SCO上测试 正常,accept 没有出错(虽然存在 "惊群" ) 。
欢迎到碟影超视逛逛, 高清晰电影任你下 :)
easysword
LU新生
UID 99264
精华 0
积分 1
帖子 1
活跃指数 0
LU金币 1 个
LU金条 0 个
阅读权限 10
注册 2007-11-26
#2
大
中
小
使用道具
发表于 2007-11-26 15:36
资料
个人空间
短消息
加为好友
我在基于2.6内核的slackware系统上也发现同样的问题
投票
交易
悬赏
活动
LoveUnix
专项技术区
> AIX -IBM UNIX
> 其他UNIX & Linux
> i5 (AS400) & IBM大机
> PC Server & HPC
> 存储设备
> 备份软件
> 网络 & 安全
> 编程开发 & Rational
> DB2 & Informix
> ORACLE等数据库
> 中间件技术
行业综合区
> 职业咨询 前程无忧
> 培训认证 行业入门
> 行业应用 项目实施
> 产品信息 商务交流
> Free download下载
交流灌水区
> 蓝色太平洋
> 墨香雅韵
> 共建家园
> 博客专区
当前时区 GMT+8, 现在时间是 2008-9-8 10:40
乐悠LoveUnix论坛-京ICP备05005823号
Thanks to
Discuz!
© 2001-2007 Power by
LoveUnix.net
Processed in 0.051812 second(s), 6 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
乐悠LoveUnix
-
Archiver
界面风格
----------
Discuz! 5 Default
新DISCUZ风格
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计