Suzuki K P wrote:
> Hi Denis,
> 
> I have confirmed that the problem is indeed due to the daemon() call
> in the application. This would cause the application to do a fork()
> and the child process will continue the execution.
> 
> But the child closes its World as soon as it does a fork with the
> pthread fork handler and later it goes on to access the freed data.
> This causes the crash.
> 
> What would be the best way to fix this issue ? How do we take care of
> this special case of fork ?

There's a call to change the behaviour.

/*
 * Sets the fork() action of the calling Fusionee within the world.
 */
void fusion_world_set_fork_action( FusionWorld      *world,
                                   FusionForkAction  action );

typedef enum {
     FFA_CLOSE,
     FFA_FORK
} FusionForkAction;


You need to get the world from the DirectFB core:


        fusion_world_set_fork_action( dfb_core_world(NULL), FFA_FORK );


Please include <src/core.h> and <fusion/fusion.h> for this.


I hope it helps, anyhow there should be an option for DirectFB to make it do 
that itself.

-- 
Best regards,
  Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to