A vibe.d thing

Steven Schveighoffer schveiguy at gmail.com
Tue Jul 31 12:39:32 UTC 2018


On 7/31/18 7:49 AM, Russel Winder wrote:
> On Tue, 2018-07-31 at 13:10 +0200, Daniel Kozak via Digitalmars-d-learn wrote:
>> On Fri, Jul 27, 2018 at 9:30 PM Steven Schveighoffer via
>> Digitalmars-d-learn <digitalmars-d-learn at puremagic.com> wrote:
>>
>>>>
>>>> Maybe IOMode.immediate or .once?
>>>> https://vibed.org/api/eventcore.driver/IOMode
>>>
>>> Oh, it looks like you specified once. Hm... that seems to me like it
>>> should work.
>>>
>>> Looks like IOMode is ignored:
>>>
>>>
>>> https://github.com/vibe-d/vibe.d/blob/a9589d955f10bd076a67d47ace0c78cfd3aa
>>> 8246/core/vibe/core/drivers/libevent2_tcp.d#L285
>>>
>>> So, no, there isn't a correct way to do this, it's unimplemented.
>>>
>>>
>>
>> It is implemented with vibe-core driver which should be default now
>> https://github.com/vibe-d/vibe-core/blob/fae7d3e93d00d9636632aa0acf9ebc19ed9
>> f4a34/source/vibe/core/net.d#L665
> 
> Sadly as of vibe.d 0.8.4 the behaviour of read(buffer, IOMode) is to either
> fill the buffer completely or throw an exception. On the forum, Sönke has
> agreed it really does seem like a bug in the implementation.
> 
> I found a workaround to the problem for my entry to CVu Code Critique 112,
> which actually is nicer code to the one that highlighted the problem – except
> that it relies on a property that has been marked deprecated.
> 
> Deadline for entries is tomorrow, so I am not now in a position to change the
> article, it has to appear as it is now. Obviously once published, people are
> most welcome to write an article for CVu reporting how naïve/crap my code is,
> and providing better answers.
> 

Hm.. it appears that there is a timeout exception thrown if there is no 
data within a certain time period. Are you getting that instead?

I'm not completely familiar with the mechanisms here, but it does appear 
to obey the other modes properly in this iteration of the library.

-Steve


More information about the Digitalmars-d-learn mailing list