Thread + DesktopMouseX()

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
kevv
Beiträge: 31
Registriert: 28.11.2010 15:52

Thread + DesktopMouseX()

Beitrag von kevv »

Code: Alles auswählen

;PB 5.20 beta 11 (86)
;Linux Mint 14
;Theard-Sicheres Executable an 

OpenWindow(10, 0, 0, 220, 220, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 10, 10, 200, 200 ,#PB_Canvas_Keyboard)


Procedure Thread(d)
Delay(1000)

Debug "Start theard "
Repeat 
 NeuX=DesktopMouseX()
 NeuY=DesktopMouseY()
 Debug NeuY
 Delay(10)
ForEver
EndProcedure



Thread = CreateThread(@Thread(),0)

Repeat
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

Programm stürzt ab entweder sofort oder nachdem ich mit der Maus über das Canvasgadget gleite
mit der Meldung < Programm abgebrochen (durch eine externe Library) >
Bug oder mein Fehler ?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Re: Theard + DesktopMouseX()

Beitrag von MVXA »

kevv hat geschrieben:Bug oder mein Fehler ?
Bild

Threads sind sehr kompliziert und selten eine gute Idee. Das ist ein sehr komplexes Themengebiet. Sie bieten sich nur für wenige Problemstellungen an, werden häufig an den falschen Stellen eingesetzt.

Ohne jetzt mit dem GDB durch das Programm gesprungen zu haben behaupte ich einfach mal, dass der Teil der Bibliothek nicht sicher für Threads ist. Die Behauptung wird durch diese Meldung gestützt:

Code: Alles auswählen

[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
purebasic_compilation0.out: xcb_io.c:179: dequeue_pending_request: Zusicherung »!xcb_xlib_unknown_req_in_deq« nicht erfüllt.
Bild
Antworten