Thread-safety and lazy-initialization of libraries

Mike Wey via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 30 14:36:21 PDT 2014


On 06/30/2014 11:05 PM, 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

You'll need to use a `shared static this` if those functions can be 
called only once per process.
A regular static this is executed once per Thread.

-- 
Mike Wey


More information about the Digitalmars-d-learn mailing list