virtchannel_base is a container for many of Tcllib's virtual channel packages.
The following script illustrates a problem with Memchan: it stops generating readable events too early. The same problem was reported (10 years ago!) for memchan. Maybe it needs to be fixed there, too.
#! /bin/env tclsh
package require tcl::chan::events
package require tcl::chan::memchan
proc copied {args} {
puts $args
set ::done 1
}
set chan [tcl::chan::memchan]
puts -nonewline $chan [string repeat a 50000]
seek $chan 0 start
set chanout [open zout w]
fcopy $chan $chanout -command copied
vwait ::doneAMG: This bug was fixed one day after your post [L1 ].
PYK 2015-05-03: Yes, I probably posted it here first, and then went on to report it via a ticket, along with the fix. The only outstanding question is whether it needs to be fixed in Memchan as well.