shared - i need it to be useful
Peter Alexander
peter.alexander.au at gmail.com
Mon Oct 15 23:23:17 UTC 2018
On Monday, 15 October 2018 at 20:53:32 UTC, Manu wrote:
> On Mon, Oct 15, 2018 at 1:05 PM Peter Alexander via
> Digitalmars-d <digitalmars-d at puremagic.com> wrote:
>>
>> On Monday, 15 October 2018 at 18:46:45 UTC, Manu wrote:
>> 1. A single producer, single consumer (SPSC) queue is
>> necessarily shared, but is only safe if there is one writing
>> thread and one reading thread. Is it ok if shared also
>> requires user discipline and/or runtime checks to ensure
>> correct usage?
>
> I think you can model this differently... perhaps rather than a
> single
> object, it's a coupled pair.
That's a nice design.
> Your swap function is plain broken; it doesn't do what the API
> promises.
> You can write all sorts of broken code, and this is a good
> example of
> just plain broken code.
If it is broken then why allow it? Why do we need to cast shared
away if they weren't atomic and why do we allow it if they are
atomic?
I understand that shared can't magically tell you when code is
thread safe or not. It does make sense to disallow almost
everything and require casts. I'm just not seeing the value of
allowing shared methods to access shared members if it isn't
thread safe. Make it require casts.
More information about the Digitalmars-d
mailing list