From: "H.Holon" Date: 2007-03-14T19:27:19+09:00 Subject: Re: Kernel#exec on OSX --Apple-Mail-3-139827022 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Hi. I wrote quick patch for 1.8.6 to fix that problem. (eval.c and process.c) please test and try. that only to stop Thread timer thread. ---- SOUMA Yutaka (H.Holon) [ holon@radastery.jp | http://radastery.jp/ ] --Apple-Mail-3-139827022 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=threadexec.patch Content-Disposition: attachment; filename=threadexec.patch --- eval.c.org 2007-03-14 19:19:01.000000000 +0900 +++ eval.c 2007-03-14 19:21:55.000000000 +0900 @@ -11736,13 +11736,18 @@ /* cause EINTR */ } -static pthread_t time_thread; +static pthread_t time_thread = NULL; +pthread_t get_time_thread() +{ + return time_thread; +} static void* thread_timer(dummy) void *dummy; { for (;;) { + pthread_testcancel(); #ifdef HAVE_NANOSLEEP struct timespec req, rem; --- process.c.org 2007-03-14 19:19:06.000000000 +0900 +++ process.c 2007-03-14 19:20:03.000000000 +0900 @@ -981,6 +981,15 @@ } #endif /* MSDOS or __human68k__ or __EMX__ */ before_exec(); +#ifdef _THREAD_SAFE + extern pthread_t get_time_thread(); + pthread_t time_thread = get_time_thread(); + if( time_thread != NULL ) + { + pthread_cancel( time_thread ); + pthread_join( time_thread, NULL ); + } +#endif execv(prog, argv); after_exec(); return -1; --Apple-Mail-3-139827022 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII --Apple-Mail-3-139827022--