Thread-safety and lazy-initialization of libraries
Sergey Protko via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jun 30 14:32:33 PDT 2014
On Monday, 30 June 2014 at 21:05:32 UTC, bearophile wrote:
> Sergey Protko:
>
>> libmpg123 has mpg123_init and mpg123_exit functions, which are
>> not thread-safe, so we should to call them only once per
>> process. Most of useful libraries also has such stuff. But
>> manual initialization is killing all beauty of high-level
>> bindings.
>
> I think module "static this" is thread-local, so in theory you
> can use that. But I don't know if it's a good idea to perform
> heavy computations inside those module static this.
>
> Bye,
> bearophile
I thought about this. But static constructors doesn't solve
problem with on-demand initialization in case, where there is
several classes. For example Decoder and Encoder both requires
library to be initialized before they are actually be used.
More information about the Digitalmars-d-learn
mailing list