Tcl Source Code

View Ticket
Login
Ticket UUID: 0654cecae10ba0762303c77b114bd3871f4ecc09
Title: file copy from zipfs does not terminate
Type: RFE Created on: 2019-08-19 09:52:32
Submitter: chw Assigned to: nobody
Subsystem: 37. File System Severity: Minor
Priority: 5 Medium Last modified: 2026-10-12 16:53:43
Status: Open Closed by: nobody
Resolution: None Closed on:
Version: 9.0.5, 9.1.0
Description:
See https://groups.google.com/forum/#!topic/comp.lang.tcl/5Jx7VY0ggC8
for original context.

The objective is to have support for event driven/background operations
on the ZIP file system in order to use e.g. fcopy with -command option
to asynchronously transfer data from a file in the ZIP file system to
a socket.

See also the corresponding ticket on www.androwish.org in
https://www.androwish.org/index.html/info/e1c81d1c2216f3b7
User Comments:
chw added on 2019-08-24 18:35:25:
Meanwhile the issue seems solved so far, see these check-ins on www.androwish.org:

https://www.androwish.org/home/info/4d44284373

https://www.androwish.org/home/info/880df261cc

serhiy.storchaka added on 2026-10-12 16:53:43:

Still happens in 9.0 and 9.1: the watch proc of zipfs channels does nothing, so fileevent handlers never fire and fcopy -command from a zipfs file never copies anything.

Proposed fix in branch zipfs-channel-events: a zipfs channel is always ready, so while it is watched a zero-delay timer notifies the channel, as for the zlib transform and reflected transforms.

The AndroWish fix uses a per-thread event source and a table of watched channels instead. It delivers real file events, but needs much more code and per-thread data that has to be handled carefully at thread exit (its second check-in fixes that). Both need a thread action proc for channel transfer between threads; the branch adds one that cancels the timer.