[PATCH] Possible threads race condition in src/alarm.c

Andrew Whitworth wknight8111 at gmail.com
Tue Aug 28 14:37:53 UTC 2012


Yes, that patch actually does look very reasonable. Does it change the
test results you've seen, at all?


--Andrew Whitworth


On Tue, Aug 28, 2012 at 10:34 AM, Andy Dougherty <doughera at lafayette.edu> wrote:
> I've never really done any threads programming, so I could be quite off
> here, but it looks to me as if there's a race condition in src/alarm.c in
> the threads branch.  Specifically, Parrot_alarm_init() creates a thread
> that checks sleep_cond before it initializes sleep_cond.  (Similar remarks
> hold for alarm_lock.)
>
> Does this patch look appropriate?
>
> diff --git a/src/alarm.c b/src/alarm.c
> index 298387f..0ec6a1f 100644
> --- a/src/alarm.c
> +++ b/src/alarm.c
> @@ -56,9 +56,9 @@ Parrot_alarm_init(void)
>  {
>      ASSERT_ARGS(Parrot_alarm_init)
>      Parrot_thread thread;
> -    THREAD_CREATE_JOINABLE(thread, Parrot_alarm_runloop, NULL);
>      MUTEX_INIT(alarm_lock);
>      COND_INIT(sleep_cond);
> +    THREAD_CREATE_JOINABLE(thread, Parrot_alarm_runloop, NULL);
>  }
>
>  /*
>
> --
>     Andy Dougherty              doughera at lafayette.edu
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev


More information about the parrot-dev mailing list