Friday, July 12, 2019

Minor bug in windows

If you are running MMA on a windows OS you will have a minor problem in that the module fcntl doesn't exist on it. To fix, just do the following:

   1. In the file common.py delete line 34: import fcntl

   2. Replace line 63 in common.py with:

        try:   # Windows doesn't know about fcntl and doesn't need it.
            import fcntl
            fcntl.flock(opath, fcntl.LOCK_EX)   # make sure we print in one batch
        except:
            pass

For the curious: the fcntl.flock() sets up a lock so that only one process can write to the output file. This is the file used for reporting warnings, etc. if the environment variable MMA_LOGFILE is set. By wrapping it all in a try/except it all works ... just no file lock on windows.

The next developer release will include this patch.

No comments:

Post a Comment

 I've been pretty neglectful in keeping this blog up-to-date. Lots of excuses ... but, I'll try to do a bit better! There is a new b...