From: Sebastien V. <seb...@tu...> - 2010-12-27 17:52:39
|
Hello Ryo, Thank you for pointing that. After a brief look at turnserver code, I think it is safe to not use the block/unblock and just use the timer_settime(timerid, 0). Normally after setting timer's time to 0 signal should not be sent and as I remove the pointer from the expired list right after, the removed allocation will not be deleted twice. I will do some tests with these modifications to see if all work as it should. Regards, -- Seb Le 27/12/2010 10:13, Ryo Sato a écrit : > Hello, > > The signal-handler might be called after refreshing a allocation with > LIFETIME=0. > See attached the sample source and the result. > > OS: Debian 5.0.7 > kernel: Linux turnserver 2.6.26-2-686 #1 SMP Thu Nov 25 01:53:57 UTC > 2010 i686 GNU/Linux > > --- > $ ./posix_timer > 0 > Create signal(144371720) > Set timer(3) > 1 > Create signal(144371736) > Set timer(3) > 2 > Block signal > 3 > 4 > 5 > Set timer(0) > Delete signal(144371736) > 6 > Unblock signal > Realtime signal received > Realtime signal received<-- !! > 7 > 8 > --- > > Thanks, > Ryo Sato > > > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > > > _______________________________________________ > Turnserver-devel mailing list > Tur...@li... > https://lists.sourceforge.net/lists/listinfo/turnserver-devel > |