Corinna Vinschen via Cygwin wrote:
On Jan 27 08:12, Christian Franke via Cygwin wrote:
Corinna Vinschen via Cygwin-announce wrote:
The following packages have been uploaded to the Cygwin distribution:
* cygwin-3.5.6-1
* cygwin-devel-3.5.6-1
* cygwin-doc-3.5.6-1
Fixes:
------
...
- Fix mq_unlink().
Addresses: https://cygwin.com/pipermail/cygwin/2025-January/257119.html
Now mq_unlink("/queue") and unlink("/dev/mqueue/queue") work, thanks!
But there is a regression:
stat() now returns st_mode = 0 for the queue file which results in an
invalid S_IFMT field:
$ uname -r
3.5.6-1.x86_64
$ stat --printf '0x%04f/%A %n (%F)\n' /dev/mqueue /dev/mqueue/mqtest
0x43ff/drwxrwxrwt /dev/mqueue (directory)
0x0000/?--------- /dev/mqueue/mqtest (weird file)
$ rm -iv /dev/mqueue/mqtest
rm: remove write-protected weird file '/dev/mqueue/mqtest'? y
removed '/dev/mqueue/mqtest'
Previous:
$ uname -r
3.5.5-1.x86_64
$ stat --printf '0x%04f/%A %n (%F)\n' /dev/mqueue /dev/mqueue/mqtest
0x43ff/drwxrwxrwt /dev/mqueue (directory)
0x8180/-rw------- /dev/mqueue/mqtest (regular file)
$ rm -iv /dev/mqueue/mqtest
rm: remove regular file '/dev/mqueue/mqtest'? y
rm: cannot remove '/dev/mqueue/mqtest': Operation not permitted
Oh well, I just pushed a patch to patch that patch. I made Cygwin treat
message queues as devices, but that was apparently over the top. I
reverted this to being treated as files again and just made sure the
check for being "anything with a representation on disk" is positive.
That in turn convinces unlink() to try removing them.
Please test cygwin-3.6.0-0.345.gb940faa144ca, which should be up in
an hour or so.
Looks good:
$ uname -r
3.6.0-0.345.gb940faa144ca.x86_64
$ rm -iv /dev/mqueue/mqtest
rm: cannot remove '/dev/mqueue/mqtest': No such file or directory
$ touch /dev/mqueue/mqtest
$ stat --printf '0x%04f/%A %n (%F)\n' /dev/mqueue /dev/mqueue/mqtest
0x43ff/drwxrwxrwt /dev/mqueue (directory)
0x81a4/-rw-r--r-- /dev/mqueue/mqtest (regular file)
$ cat /dev/mqueue/mqtest
QSIZE:0 NOTIFY:0 SIGNO:0 NOTIFY_PID:0
$ rm -iv /dev/mqueue/mqtest
rm: remove regular file '/dev/mqueue/mqtest'? y
removed '/dev/mqueue/mqtest'
Same behavior as on Linux.
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple