rts: Update comment about FreeBSD's unsigned FD_SETSIZE
authorNiklas Hamb├╝chen <mail@nh2.me>
Tue, 19 Sep 2017 19:11:38 +0000 (15:11 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 19 Sep 2017 19:58:46 +0000 (15:58 -0400)
Reviewers: bgamari, austin, erikd, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3957

rts/posix/Select.c

index 3d3b70b..270e6ff 100644 (file)
@@ -256,9 +256,14 @@ awaitEvent(bool wait)
       for(tso = blocked_queue_hd; tso != END_TSO_QUEUE; tso = next) {
         next = tso->_link;
 
-      /* On FreeBSD FD_SETSIZE is unsigned. Cast it to signed int
+      /* On older FreeBSDs, FD_SETSIZE is unsigned. Cast it to signed int
        * in order to switch off the 'comparison between signed and
        * unsigned error message
+       * Newer versions of FreeBSD have switched to unsigned int:
+       *   https://github.com/freebsd/freebsd/commit/12ae7f74a071f0439763986026525094a7032dfd
+       *   http://fa.freebsd.cvs-all.narkive.com/bCWNHbaC/svn-commit-r265051-head-sys-sys
+       * So the (int) cast should be removed across the code base once
+       * GHC requires a version of FreeBSD that has that change in it.
        */
         switch (tso->why_blocked) {
         case BlockedOnRead: