void DoLZDecompress(const char *filename,...)
struct CommandInfo i;
i.data = (void *)filename;
// warning : passing string pointer (not copying) to another thread, make sure it's const / sticks around!
StartJob( &i );
Yup, that's a crash.
void OodleIOQ_SetKickImmediate( bool kick );
/* kick state is global ; hmm should really be per-thread ; makes it a race
Yup, that's a problem, which leads to the later deadlock :
void Oodle_Wait( Handle h )
// @@ ? can this handle depend on un-kicked items, and hence never complete ?
// I used to check for that with normal deps but it's hard now with the "permits"
Coding crime doesn't pay. Spaghetti always gets you in the end, with its buggy staining sauce.
Whenever I have one of those "hmm this smells funny, I'm worried about the robustness of this" , yep, it's a problem.
One of my mortal enemies are the "don't worry about it, it'll be fine" people. No it will fucking not be fine. You know what will happen? It'll be a nasty god damn race bug, which I will wind up fixing while the "don't worry about it, it'll be fine" guy is watching lolcatz or browsing facebook.