• David Reid's avatar
    Initial work on a new job system for the high level API. · 861f6a23
    David Reid authored
    This new system is used for asynchronous decoding of sound data. The
    main improvement with this one over the old one is the ability to do
    multi-producer, multi-consumer lock-free posting of messages which
    means multiple threads can be used to process jobs simultaneously
    rather than a single thread processing all jobs serially.
    
    Decoding is inherently serial which means multiple job threads is only
    useful when decoding multiple sounds. Each individual sound will be
    decoded serially.
    
    Another change with this commit is the ability for applications to
    control whether or not the resource manager manages it's own job
    threads. This is useful if an application wants to manage the job queue
    themselves if, for example, they want to integrate it more closely with
    their existing job system.
    861f6a23
ma_engine.h 219 KB