[mythtv-commits] Ticket #9972: backend, frontend segfault with /usr/lib64/libQtCore.so.4

MythTV noreply at mythtv.org
Tue Aug 9 14:18:25 UTC 2011


#9972: backend, frontend segfault with /usr/lib64/libQtCore.so.4
-------------------------------------------------+-------------------------
 Reporter:  yianniv <yiannividalis@…>            |          Owner:  danielk
     Type:  Bug Report - General                 |         Status:  closed
 Priority:  minor                                |      Milestone:  0.25
Component:  MythTV - General                     |        Version:  Trunk
 Severity:  medium                               |  Head
 Keywords:                                       |     Resolution:  fixed
                                                 |  Ticket locked:  0
-------------------------------------------------+-------------------------
Changes (by Github):

 * status:  assigned => closed
 * resolution:   => fixed
 * milestone:  unknown => 0.25


Comment:

 Fixes #9972. Apply the construct on first use idiom to two previously
 staticaly initialized threads.

 C++ initializes statics in a strict order within a compilation unit, but
 across compilation units the order is random.

 This is a problem when you statically initialize an MThread because you
 may initialize it before the static MThread
 debugging variables are statically initialized. i.e. mythsocket.o or
 logging.o may be initialized before mthread.o

 It's possible to work around this using compiler attributes, but a cleaner
 solution is to use the construct-on-first-use idiom as it will work
 correctly on all systems.

 This also adds a warning to the mthread.h doxygen doct to not to
 statically initialize threads.
  Branch:    master
  Changeset: f4ba7827e165672ed8c0c901b50243443f5f203d

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/9972#comment:6>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list