tags:

views:

41

answers:

2

Hi all, I'm trying to use FUSE with Qt, but fuse_main() and app.exec() has their own event loop. This mean that if I start one the other will not start, since the first that starts prevents the other to start as shown below. How to deal with this?

For more info about fuse, go to http://fuse.sourceforge.net/

Please, if possible, provide example.

Thank you, Leandro.

Example:

this one will prevent fuse to start:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv); // qt event loop
    a.exec();
    fuse_main(argc, argv, &hello_oper); // fuse event loop, it will not start
    return 0;
}

and this one will prevent qt to start:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv); // it will not start due to fuse_main invocation
    fuse_main(argc, argv, &hello_oper);
    return a.exec();
}
A: 

You should run the filesystem on a separate thread.

SLaks
A: 

You can also run FUSE on a separate process and communicate via sockets/pipes/RPC/... It is preferred in the case that FUSE crashes or is busy doing something, your GUI is still working.

Dat Chu