Unfortunately, reverting the recent changes (that caused the thread
to be created with "detached" state) wasn't enough to fix the problem.
The strange thing is, that the return value that triggers assert()
is 35, or EAGAIN (Linux). This makes no sense. It's neither described
on the pthread_join manpage, nor is it used in any implementation that
I found on the net. Also, if I take it literally and try again in
an endless loop, I get endless 35 codes.

Maybe I've got a broken libpthread or something. Could someone try
to reproduce it?

  $ fgfs --aircraft=ufo --prop:/environment/params/metar-max-age-min=1 
--log-level=warn

Then fly to another airport, say KOAK and wait. After one minute
fgfs starts to fetch METAR reports for KOAK, but they are most
likely older than one minute, so it fetches the next, and next,
until it throws an exception after ten failed attempts. And this
causes an abortion here:

  Error fetching live weather data: More than 10 stale METAR messages in a row.
  Stop fetching data permanently.
  fgfs: /usr/local/include/simgear/threads/SGThread.hxx:150: void \
          SGThread::join(): Assertion `status == 0' failed.
  /home/m/bin/fgfs: line 239: 18187 Aborted                 (core dumped) 

m.

_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to