Multithread FAQ

I've launched several threads and they do not seem to be executed:

The thread that launched the several threads may be dead before its children.

Two threads can lock the same mutex, however none of them unlocks it:

Same problem as above. Maybe the first thread that locked the shared mutex died before the second tried to lock it: thus, the first one automatically unlocked it when it died. You should put a join_all or an infinite loop in the parent thread.

I've added the option multithreaded in the project settings and it crashes:

If you have already compiled your system in non-MT mode, you cannot change the mode of compilation and simply relaunch your compilation (the generated C-code would be incompatible). Delete all your object files in your W_code or F_code directory and freeze or finalize the system again.

My once function changed during my MT-Eiffel-program:

The once functions are once per thread in Multithreaded mode. Hence, each once function is thread-specific and is initialized the first time it is called in a thread.

You can create a once per process by following these instructions .