Timeout around function call
drathier
forum.dlang.org at fi.fo
Wed Sep 23 17:33:50 UTC 2020
On Tuesday, 22 September 2020 at 21:55:51 UTC, Imperatorn wrote:
> On Tuesday, 22 September 2020 at 09:32:13 UTC, drathier wrote:
>> What's the obvious way to put a timeout around a function
>> call? I'm thinking a 5 or 30 second timeout, and I'm expecting
>> it to pretty much never time out.
>
> You have several options. Either you use the actor model
> (spawn[Linked]) and send a termination message after a
> specified time. Or you use a task and check for
> yourTask.done(). Or you could create a Thread and check
> isRunning.
>
> (You didn't specify what you wanted to happen and if blocking
> was allowed or not)
Blocking is perfectly fine. I'm wondering if I need things to be
shared now or something? Not used to programming with threads.
Adding a shared modifier recursively onto every piece of data
that needs it is a ton of work though.
I don't want to copy the data around since it's many gigabytes,
but I'm sure there won't be any data races; main thread will
start 2 threads, one for running the timer and one running the
function call. The main thread doesn't access the data until both
the timer and function call threads have stopped completely.
More information about the Digitalmars-d-learn
mailing list