Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#4790 memchan fifo events

obsolete: 8.5.9
closed-fixed
5
2011-02-14
2011-02-08
Anonymous
No

Using the Memchan fifo command, the read events are not being consistent, not triggered at all, triggered only after reading at least one character first.

Example:
% package req Memchan
2.3
% set c [fifo]
fifo0
% chan event $c readable r
% proc r {} {puts "read -- [read $::c]"}
% puts $c "testing read"
% flush $c
% update
% read $c 1
t
% update
read -- esting read
##########################

It can also
generate false positives:
% package require Memchan
2.3
% set c [fifo]
fifo0
% fileevent $c readable {puts stderr READ:; puts stderr "([read $::c
1])"}
% update
READ:
()
% update
READ:
()

#############################

Even stranger, fileevents stop when data are ready !
% fconfigure $c -buffering line
% puts $c aa
% update
% update
% update
% read $c 1
a
% update
READ:
(a)
READ:
(
)
% update
READ:
()
% update
READ:
()
########################

I tried it Tcl 8.5 and 8.6. Same issue on both.

Discussion

  • Fixed. Indeed, an inverted condition dropping readable events when actually needed.

    Side note: This bug was found in Memchan, and should have been reported to the Memchan project @ SF, and not the Tcl core. It was fixed in Memchan too. I accepted the misfile this time because I would have been the person to fix it anyway, regardless of filing location.

     
    • status: open --> closed-fixed