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