Chinaunix

标题: 不知哪位大侠有在Solaris的Forte c下用过usleep()函数? [打印本页]

作者: lylzp    时间: 2004-04-13 09:29
标题: 不知哪位大侠有在Solaris的Forte c下用过usleep()函数?
我最近写了一个程序,它是一个后台程序,内部就是让它休眠500ms后,去处理一些事务。刚开始的时候是正常的,运行一段时间后程序就不动了。我用dbx去attach它,并用where命令打印状态,它显示为:
current thread: t@1
  [1] _libc_sigsuspend(0xffbef540, 0xffffffffffffffff, 0xfeb7e000, 0xfeb7e000, 0
x28050, 0x28040), at 0xfeb1b148
  [2] _sigsuspend(0xffbef540, 0xfeb7e000, 0x0, 0x1f4, 0xe, 0xffbef5c9), at 0xfeb
69b3c
  [3] _libc_usleep(0x0, 0xfeb3801c, 0x1f4, 0xfebd8000, 0x0, 0x0), at 0xfead5c50
  [4] _ti_usleep(0xffbef820, 0xffbef818, 0x4b2, 0xfe9f0000, 0x5, 0xffbef900), at
0xfeb6b518
=>;[5] main(argc = 3, argv = 0xffbefab4)


请问这是什么原因?
作者: hh942111    时间: 2004-04-13 12:24
标题: 不知哪位大侠有在Solaris的Forte c下用过usleep()函数?
你是多线程还是单线程应用, 在solaris平台上usleep多线程不安全! 在多线程环境中可以用nanosleep,或者自己用select实现一个
作者: lylzp    时间: 2004-04-13 12:54
标题: 不知哪位大侠有在Solaris的Forte c下用过usleep()函数?
我的程序是单线程的,就是说在程序中我并没有去创建线程。有两个进程,其中一个是子进程,里面没有什么功能所以它很早就返回了。
作者: lylzp    时间: 2004-04-13 14:25
标题: 不知哪位大侠有在Solaris的Forte c下用过usleep()函数?
不好意思,我下午用ps -ef -o comm -o nlwp来查看它确实有几个线程。我这程序有用到proc*c




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2