1 diff -up wvstreams-4.6.1/include/wvtask.h.magic wvstreams-4.6.1/include/wvtask.h
2 --- wvstreams-4.6.1/include/wvtask.h.magic 2008-07-14 21:11:35.000000000 +0200
3 +++ wvstreams-4.6.1/include/wvtask.h 2012-06-03 17:24:47.909187849 +0200
4 @@ -45,7 +45,8 @@ class WvTask
5 typedef void TaskFunc(void *userdata);
7 static int taskcount, numtasks, numrunning;
8 - int magic_number, *stack_magic;
9 + int volatile magic_number;
14 @@ -84,7 +85,7 @@ class WvTaskMan
15 static WvTaskMan *singleton;
18 - static int magic_number;
19 + static int volatile magic_number;
20 static WvTaskList all_tasks, free_tasks;
22 static void get_stack(WvTask &task, size_t size);
23 diff -up wvstreams-4.6.1/utils/wvtask.cc.magic wvstreams-4.6.1/utils/wvtask.cc
24 --- wvstreams-4.6.1/utils/wvtask.cc.magic 2009-05-13 23:42:52.000000000 +0200
25 +++ wvstreams-4.6.1/utils/wvtask.cc 2012-06-03 14:29:09.729656804 +0200
26 @@ -58,7 +58,8 @@ char *alloca ();
27 int WvTask::taskcount, WvTask::numtasks, WvTask::numrunning;
29 WvTaskMan *WvTaskMan::singleton;
30 -int WvTaskMan::links, WvTaskMan::magic_number;
31 +int WvTaskMan::links;
32 +int volatile WvTaskMan::magic_number;
33 WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks;
34 ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,