Thread overview
xcb error for core.thread's Thread.join
Dec 29, 2014
Jeremy DeHaan
Dec 29, 2014
Jeremy DeHaan
Dec 29, 2014
Jeremy DeHaan
Dec 29, 2014
Rikki Cattermole
Dec 29, 2014
Jeremy DeHaan
Dec 29, 2014
Rikki Cattermole
December 29, 2014
Hey all,

I've never gotten any xcb errors with just regular D code before, but maybe I just haven't done anything that would have caused them.

I can't say I actually know much about how these things work, but does D not use xcb when it does threading on Linux?

I'm not really doing anything that I could call complicated. I am creating a secondary thread and just outputting some text to the console from both threads. The error itself seems to happen on a call to Thread.join, though I can't say why.
December 29, 2014
On Monday, 29 December 2014 at 06:26:04 UTC, Jeremy DeHaan wrote:
> Hey all,
>
> I've never gotten any xcb errors with just regular D code before, but maybe I just haven't done anything that would have caused them.
>
> I can't say I actually know much about how these things work, but does D not use xcb when it does threading on Linux?
>
> I'm not really doing anything that I could call complicated. I am creating a secondary thread and just outputting some text to the console from both threads. The error itself seems to happen on a call to Thread.join, though I can't say why.

Looks like it isn't the call to Thread.join, that was just a coincidence for my writeln debugging. If I have the second thread going it just happens.
December 29, 2014
On Monday, 29 December 2014 at 06:34:02 UTC, Jeremy DeHaan wrote:
> On Monday, 29 December 2014 at 06:26:04 UTC, Jeremy DeHaan wrote:
>> Hey all,
>>
>> I've never gotten any xcb errors with just regular D code before, but maybe I just haven't done anything that would have caused them.
>>
>> I can't say I actually know much about how these things work, but does D not use xcb when it does threading on Linux?
>>
>> I'm not really doing anything that I could call complicated. I am creating a secondary thread and just outputting some text to the console from both threads. The error itself seems to happen on a call to Thread.join, though I can't say why.
>
> Looks like it isn't the call to Thread.join, that was just a coincidence for my writeln debugging. If I have the second thread going it just happens.

Not sure if this makes any difference, but I don't get any errors when I let the main thread sleep, but the main thread and secondary thread do not run simultaneously.

December 29, 2014
On 29/12/2014 7:39 p.m., Jeremy DeHaan wrote:
> On Monday, 29 December 2014 at 06:34:02 UTC, Jeremy DeHaan wrote:
>> On Monday, 29 December 2014 at 06:26:04 UTC, Jeremy DeHaan wrote:
>>> Hey all,
>>>
>>> I've never gotten any xcb errors with just regular D code before, but
>>> maybe I just haven't done anything that would have caused them.
>>>
>>> I can't say I actually know much about how these things work, but
>>> does D not use xcb when it does threading on Linux?
>>>
>>> I'm not really doing anything that I could call complicated. I am
>>> creating a secondary thread and just outputting some text to the
>>> console from both threads. The error itself seems to happen on a call
>>> to Thread.join, though I can't say why.
>>
>> Looks like it isn't the call to Thread.join, that was just a
>> coincidence for my writeln debugging. If I have the second thread
>> going it just happens.
>
> Not sure if this makes any difference, but I don't get any errors when I
> let the main thread sleep, but the main thread and secondary thread do
> not run simultaneously.
>

XCB and xlib in general is not thread safe. They should only ever be called on one thread.
Although I'm guessing you're not directly interfacing with it in which case that little tidbit isn't much use to you.
December 29, 2014
On Monday, 29 December 2014 at 07:23:32 UTC, Rikki Cattermole wrote:
> On 29/12/2014 7:39 p.m., Jeremy DeHaan wrote:
>> On Monday, 29 December 2014 at 06:34:02 UTC, Jeremy DeHaan wrote:
>>> On Monday, 29 December 2014 at 06:26:04 UTC, Jeremy DeHaan wrote:
>>>> Hey all,
>>>>
>>>> I've never gotten any xcb errors with just regular D code before, but
>>>> maybe I just haven't done anything that would have caused them.
>>>>
>>>> I can't say I actually know much about how these things work, but
>>>> does D not use xcb when it does threading on Linux?
>>>>
>>>> I'm not really doing anything that I could call complicated. I am
>>>> creating a secondary thread and just outputting some text to the
>>>> console from both threads. The error itself seems to happen on a call
>>>> to Thread.join, though I can't say why.
>>>
>>> Looks like it isn't the call to Thread.join, that was just a
>>> coincidence for my writeln debugging. If I have the second thread
>>> going it just happens.
>>
>> Not sure if this makes any difference, but I don't get any errors when I
>> let the main thread sleep, but the main thread and secondary thread do
>> not run simultaneously.
>>
>
> XCB and xlib in general is not thread safe. They should only ever be called on one thread.
> Although I'm guessing you're not directly interfacing with it in which case that little tidbit isn't much use to you.

But I thought that XCB was thread safe.
December 29, 2014
On 29/12/2014 9:54 p.m., Jeremy DeHaan wrote:
> On Monday, 29 December 2014 at 07:23:32 UTC, Rikki Cattermole wrote:
>> On 29/12/2014 7:39 p.m., Jeremy DeHaan wrote:
>>> On Monday, 29 December 2014 at 06:34:02 UTC, Jeremy DeHaan wrote:
>>>> On Monday, 29 December 2014 at 06:26:04 UTC, Jeremy DeHaan wrote:
>>>>> Hey all,
>>>>>
>>>>> I've never gotten any xcb errors with just regular D code before, but
>>>>> maybe I just haven't done anything that would have caused them.
>>>>>
>>>>> I can't say I actually know much about how these things work, but
>>>>> does D not use xcb when it does threading on Linux?
>>>>>
>>>>> I'm not really doing anything that I could call complicated. I am
>>>>> creating a secondary thread and just outputting some text to the
>>>>> console from both threads. The error itself seems to happen on a call
>>>>> to Thread.join, though I can't say why.
>>>>
>>>> Looks like it isn't the call to Thread.join, that was just a
>>>> coincidence for my writeln debugging. If I have the second thread
>>>> going it just happens.
>>>
>>> Not sure if this makes any difference, but I don't get any errors when I
>>> let the main thread sleep, but the main thread and secondary thread do
>>> not run simultaneously.
>>>
>>
>> XCB and xlib in general is not thread safe. They should only ever be
>> called on one thread.
>> Although I'm guessing you're not directly interfacing with it in which
>> case that little tidbit isn't much use to you.
>
> But I thought that XCB was thread safe.

It seems to support it, but there are manual calls you have to do. Which I can't really help with unfortunately.

I just play by the old rule, if its low level os, its single threaded call.
Makes going between OS api's so much easier.