They should be available in the next code drop to the open source repository, but I don't know when this will happen
On Tue, Feb 17, 2009 at 9:40 AM, David Turner <di...@android.com> wrote: > > > On Mon, Feb 16, 2009 at 8:48 PM, henry.lon...@gmail.com < > henry.lon...@gmail.com> wrote: > >> >> That's great. I found similar problem for SIGEV_SIGNAL. Could you >> please let me know when the fix is released? >> > > I think I nailed that one too. All fixes are in > bionic/libc/bionic/pthread-timers.c, essentially: > > - in timer_settime() replace the call to __timer_gettime() to > __timer_settime() with proper parameters (silly typo) > - in the worker thread implementation, a subtraction reversal when > computing the timeout (should be "expires - now" instead of "now - expires") > > > >> >> Thanks! >> >> On Feb 16, 1:49 am, David Turner <di...@android.com> wrote: >> > ok, I found the bug in the timer implementation, a fix is coming soon. >> > >> > On Mon, Feb 16, 2009 at 10:27 AM, David Turner <di...@android.com> >> wrote: >> > > this one's for me :-) >> > >> > > Can you send me a small compilable test program to reproduce this >> (it'd be >> > > much better for me since >> > > I don't know what your timer_handler function is doing there). >> > >> > > It might be a bug in the SIGEV_THREAD timer implementation, I checked >> and >> > > tested it for correctness but didn't look at CPU usage, I admit. >> > >> > > By the way, sigev_signo isn't used with SIGEV_THREAD timers. >> > >> > > On Mon, Feb 16, 2009 at 4:13 AM, henry.lon...@gmail.com < >> > > henry.lon...@gmail.com> wrote: >> > >> > >> hi, >> > >> > >> i played with timer_create routine with the following code. it seems >> > >> the timer is working, but the cpu utilization is really high(over >> 90%) >> > >> if i run "top". Any idea what's going on on G1? >> > >> > >> Thanks! >> > >> > >> >> ----------------------------------------------------------------------------------------------------- >> > >> se.sigev_notify = SIGEV_THREAD; >> > >> se.sigev_notify_function = timer_handler; >> > >> se.sigev_signo = SIGUSR1; >> > >> timer_create(CLOCK_REALTIME, &se, &tid); >> > >> > >> memset(&ts, 0, sizeof(struct itimerspec)); >> > >> ts.it_value.tv_sec = 0; >> > >> ts.it_value.tv_nsec = 30000000; >> > >> ts.it_interval.tv_sec = 0; >> > >> ts.it_interval.tv_nsec = 30000000; >> > >> result = timer_settime(tid, 0, &ts, 0); >> >> >> > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---