[phobos] Typo (bug) in std.concurrency
Sean Kelly
sean at invisibleduck.org
Wed Jun 30 12:49:02 PDT 2010
Sounds like a good idea.
On Jun 30, 2010, at 12:32 PM, Lars Tandle Kyllingstad wrote:
> This is somewhat unrelated, but the idea came to me as a workaround for
> the bug I just described:
>
> Since there is an owner-owned relationship between threads, would it be
> a good idea to have an ownerTid() function? I've noticed that there is
> a private 'owner' variable in std.concurrency, and I'm thinking
> something like this would be useful:
>
> @property Tid ownerTid()
> {
> enforce(owner, "Thread has no owner");
> return owner;
> }
>
> -Lars
>
> On Wed, 2010-06-30 at 12:27 -0700, Sean Kelly wrote:
>> Looks like it's time I start labeling references as shared in std.concurrency. The static checking is new.
>>
>> On Jun 30, 2010, at 12:15 PM, Lars Tandle Kyllingstad wrote:
>>
>>> Great, thanks! I can confirm that receiveTimeout() doesn't hang
>>> anymore.
>>>
>>> I just encountered another problem with the SVN version of
>>> std.concurrency. The following code is a simplified version of an idiom
>>> which is used in TDPL, namely, sending a Tid as a message:
>>>
>>> import std.concurrency;
>>>
>>> void main()
>>> {
>>> Tid someTid;
>>> someTid.send(thisTid);
>>> }
>>>
>>> Upon compilation, I get the following error:
>>>
>>> /home/lars/code/phobos-trunk/phobos/std/concurrency.d(217): Error:
>>> static assert "Aliases to mutable thread-local data not allowed."
>>> a.d(6): instantiated from here: send!(Tid)
>>>
>>> I do not get this message when I compile with the released (2.047)
>>> version of std.concurrency.
>>>
>>> -Lars
>>>
>>>
>>> On Wed, 2010-06-30 at 11:36 -0700, Sean Kelly wrote:
>>>> Okay, should be fixed now.
>>>>
>>>> On Jun 30, 2010, at 8:38 AM, Sean Kelly wrote:
>>>>
>>>>> Oh well, looks like I have even more fixing to do :-)
>>>>>
>>>>> On Jun 30, 2010, at 7:35 AM, Lars Tandle Kyllingstad wrote:
>>>>>
>>>>>> Yeah, I noticed that you committed the fix, but too late. :) Due to
>>>>>> some server lag, I got the "phobos commit" message several hours after I
>>>>>> sent my e-mail, even though the commit was apparently done before I sent
>>>>>> it.
>>>>>>
>>>>>> In case it's useful, I should mention that even after fixing the tuple
>>>>>> issue and changing the return type of receiveTimeout() to void, it still
>>>>>> doesn't work. The following code hangs indefinitely:
>>>>>>
>>>>>> import std.concurrency;
>>>>>>
>>>>>> void main()
>>>>>> {
>>>>>> // Should only block for 1ms:
>>>>>> receiveTimeout(1, (int i) { });
>>>>>> }
>>>>>>
>>>>>> -Lars
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, 2010-06-29 at 20:47 -0700, Sean Kelly wrote:
>>>>>>> The code has changed a ton recently and I hadn't gotten around to testing receiveTimeout yet. I'll take care of it.
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On Jun 29, 2010, at 4:09 PM, Lars Tandle Kyllingstad <lars at kyllingen.net> wrote:
>>>>>>>
>>>>>>>> I'm guessing this error turned up because someone tried to use
>>>>>>>> receiveTimeout(). That's when it happened for me, at least. But when I
>>>>>>>> fixed this, another error occurred:
>>>>>>>>
>>>>>>>> receiveTimeout() is supposed to return a bool, but it tries to return
>>>>>>>> the result of MessageBox.get(), which is void. So get() should, in the
>>>>>>>> case when ops[0] is an integer, somehow detect whether a message was
>>>>>>>> received within the time limit and return a bool.
>>>>>>>>
>>>>>>>> Sean, if you aren't working on this already, I can look into it if you
>>>>>>>> like.
>>>>>>>>
>>>>>>>> -Lars
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, 2010-06-29 at 09:40 -0700, Sean Kelly wrote:
>>>>>>>>> Okay I guess that makes sense. Should be easy enough to fix anyway.
>>>>>>>>>
>>>>>>>>> On Jun 29, 2010, at 8:43 AM, Steve Schveighoffer wrote:
>>>>>>>>>
>>>>>>>>>> You can't slice a tuple and assign it back to the same tuple type.
>>>>>>>>>>
>>>>>>>>>> -Steve
>>>>>>>>>>
>>>>>>>>>> ----- Original Message ----
>>>>>>>>>>> From: Sean Kelly <sean at invisibleduck.org>
>>>>>>>>>>> To: Discuss the phobos library for D <phobos at puremagic.com>
>>>>>>>>>>> Sent: Tue, June 29, 2010 11:39:50 AM
>>>>>>>>>>> Subject: Re: [phobos] Typo (bug) in std.concurrency
>>>>>>>>>>>
>>>>>>>>>>> On Jun 29, 2010, at 7:00 AM, Simen Kjaeraas wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://d.puremagic.com/issues/show_bug.cgi?id=4406
>>>>>>>>>>>
>>>>>>>>>>> Posting it
>>>>>>>>>>> here too, to make sure it gets noticed. It's a rather simple fix.
>>>>>>>>>>
>>>>>>>>>> You
>>>>>>>>>>> can't slice a tuple? Seriously? I could have sworn that I tested
>>>>>>>>>>> this and it worked.
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> phobos mailing list
>>>>>> phobos at puremagic.com
>>>>>> http://lists.puremagic.com/mailman/listinfo/phobos
>>>>>
>>>>> _______________________________________________
>>>>> phobos mailing list
>>>>> phobos at puremagic.com
>>>>> http://lists.puremagic.com/mailman/listinfo/phobos
>>>>
>>>> _______________________________________________
>>>> phobos mailing list
>>>> phobos at puremagic.com
>>>> http://lists.puremagic.com/mailman/listinfo/phobos
>>>
>>>
>>> _______________________________________________
>>> phobos mailing list
>>> phobos at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/phobos
>>
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list