Pregunta

Mi código está colgando fwrite con la pila siguiente:

libc.so.6.1::___lll_lock_wait
libc.so.6.1::fwrite

Esto parece estar sucediendo en Solaris.

Lo único incorrecta que se me ocurre es que mi código puede tratar de hacer un fclose paralelo en el mismo puntero a FILE que se utiliza para hacer fwrite. Si un fclose paralelo sucede, dará lugar a este tipo de una pila?

Sin embargo, no estoy seguro de si la llamada fclose paralelo realmente sucedió o no?

¿Cuál podría ser el problema aquí?

¿Fue útil?

Solución

Parece que algo ha volado alguna parte. Operaciones en FILE * normalmente utiliza un bloqueo interno para ser seguro hilo. Usted probablemente ha hecho algo para invocar algún lugar undefned comportamiento. P.ej. que ha corrompido el montón, sobrescribir algo importante (como un archivo), o el archivo ha sido cerrada * -. en cuyo caso no se puede confiar en su sano juicio lo que suceda si se continua a utilizar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top