Zależy mi na napisaniu własnego systemu plików, co byłby interaktywny (coś, jakby KIO-Polkit czy UAC).
Problem jest taki, że python3-pyfuse ma problemy z obsługą wątków w niektórych implementacjach Pythona. W OpenSUSE akurat ma.
Są też inne moduły pythona dla fuse, ale są inne problemy, np. nie mogą być równocześnie zainstalowane z python-pyfuse.
Stąd postanowienie o przepisaniu na C. I stąd moje pytanie - jak wygląda kwestia wielowątkowości lub asynchroniczoności. Szukałem w dokumentacji i jest np. id sesji, ale do jego otrzymania, trzeba podać obiekt fuse, który nie jest przekazywany do funkcji-operacji-fuse.
Zależałoby mi czymś takim:
void callback_fuse(int identyfikator_żądania) {
int fd = wywołujemy_helpera_przekazując_np_ścieżkę_do_pliku
dodaj_deskryptor_pliku_i_id_żądania_do_pętli(fd, identyfikator_żądania)
}
// Pętla główna
while (1) {
poll(deskryptory_plików_poll, ilość_deksryptorów, -1);
int i;
for (i = 0; i < ilość_deskryptorów; ++i) {
if (deskryptory_plików_poll[i].revents) {
int result = obsłuż_helpera(deskryptory_plików[i],&deskryptory_plików_poll[i])
zwróć_resultat(id_żądań, result);
}
}