Threading challenge: calculate fib(45) while spinning
Ali Çehreli
acehreli at yahoo.com
Fri Oct 15 05:07:07 UTC 2021
On 10/14/21 9:17 PM, jfondren wrote:
> On Friday, 15 October 2021 at 03:54:17 UTC, Ali Çehreli wrote:
>> On 10/14/21 8:35 PM, jfondren wrote:
>>> The book, "The Go Programming Language" has this simple goroutine
>>> example:
>>
>> Here is one that uses receiveTimeout and OwnerTerminated:
>>
>
> Very nice, replacing Thread.sleep with receiveTimeout and getting
> graceful interruption for free. This also doesn't crash.
Cool. :)
Actually, it can be shorter by checking the return value of receiveTimeout:
if (receiveTimeout(delay, (OwnerTerminated msg) {})) {
return;
}
I didn't use this method earlier because I was afraid an unexpected
message might make receiveTimeout return 'true'. But I've tested just
now: Only the expected OwnerTerminated makes it return 'true'.
Ali
More information about the Digitalmars-d-learn
mailing list