Still working on #swad, and currently very busy with improving quality, most of the actual work done inside my #poser library.
After finally supporting #kqueue and #epoll, I now integrated #xxhash to completely replace my previous stupid and naive hashing. I also added a more involved #dictionary class as an alternative to the already existing #hashtable. While the hashtable's size must be pre-configured and collissions are only ever resolved by storing linked lists, the new dictionary dynamically nests multiple hashtables (using different bits of a single hash value). I hope to achieve acceptable scaling while maintaining also acceptable memory overhead that way ...
#swad already uses both container classes as appropriate.
Next I'll probably revisit poser's #threadpool. I think I could replace #pthread condition variables by "simple" #semaphores, which should also reduce overhead ...
It's weird, but I had NO IDEA on #macOS you could nest both dispatch_async AND pass #semaphores through to be used to ensure things happened one-at-a-time when you dispatched the async. #Xcode
I know it's weird, but I had like 4 things to do to each video file (ffmpeg, atomicparsley, archive original, & move new file in place onto a #synology )
I saw no other way to get output from an NSTask except doing a dispatch_async for #ffmpeg and #atomicparsley
Handy!
@siracusa @jamesthomson