DragonFly bugs List (threaded) for 2007-12
DragonFly BSD
DragonFly bugs List (threaded) for 2007-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [issue895] pselect(2) implementation


From: "Nicolas Thery" <nthery@xxxxxxxxx>
Date: Sat, 29 Dec 2007 10:31:11 +0100

2007/12/27, Jeffrey Hsu <hsu@dragonflybsd.org>:
> Don't forget to add the hook to the Linux emulation layer for this system call.

Thanks for the remark.  I completely forgot linux emulation.  The
pselect syscall was introduced in linux 2 years ago:

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.23.y.git;a=commit;h=9f72949f679df06021c9e43886c9191494fdb007

pselect() is still implemented by a wrapper in glibc though, at least
for debian 4.0.  I'll try to implement the hook anyway.

Additionally, reading  the linux pselect commit log revealed what
looks like a bug in my patch: if pselect() is interrupted by a signal
that was blocked prior to the call and unblocked by pselect(), the
syscall is interrupted but the  signal handler is not called because
the patch restores the original mask before userret() is called.
pselect() should probably be implemented like sigsuspend() instead.



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]