fix race condtion in comp caused by delayed job doing the populate.
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 26 Apr 2013 07:21:37 +0000 (16:21 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 26 Apr 2013 07:31:29 +0000 (16:31 +0900)
commit59c4e0f81ba47dee3c352b0b0ae74e47fe3d0bb2
treef734fb657cc6dff0462c0148d7500afe907bf04e
parent61aa5a29c22b8783770242d5bd2c6f86c5c72042
fix race condtion in comp caused by delayed job doing the populate.

by making a job to delay population we play a race condition game with
initting of other bits of e. this means the comp may or may not have
been filled by the container layer winds before other internal events
and actions start making comp wins and setting layers. this means that
things like e_comp_win_find() for a con->layers[n].win may fail... as
this has yet to be added... and thus.. we crash in startup. it's a
race condition.

so this removed the delay job and makes population of the comp
explicit. it puts the population into the hnds of the e_main init
after a manager has been created and after a container is created, and
thus laer wins created, so it can walk the x window stack correctly,
but before anything else is done. this means that we will be properly
inited at this point without a race condition.
src/bin/e_comp.c
src/bin/e_comp.h
src/bin/e_main.c