2012-03-06 2 views
5

La mia applicazione all'improvviso, smette di funzionare. e ho eseguito seguente comand,Cosa significa futex_?

#ps -elf | grep aeroServ 

e ottenuto il seguente output,

#0 S binunun 5634 2300 0 80 0 - 7781 futex_ 15:41 pts/0 00:00:04 

Quello che ho potuto in grado di percepire è che, l'applicazione non è in esecuzione, ma non capisco quale stato il processo è adesso. Qualcuno potrebbe gentilmente spiegare.

risposta

6

Questa è la colonna WCHAN dell'uscita ps.

come pagina man dice:

nwchanWCHAN indirizzo della funzione del kernel in cui il processo sta dormendo (uso WCHAN se si desidera che il nome della funzione del kernel). Le attività in esecuzione visualizzeranno un trattino ('-') in questa colonna.

Quindi il processo è bloccato su una chiamata futex_* nel kernel (queste chiamate sono legati alla mutex blocco/sblocco e altre primitive di sincronizzazione). Perchè è bloccato lì, solo tu puoi dirlo controllando il tuo codice e/o usando un debugger.

(Vedere Futex per informazioni sui futex.)