Saturday, February 14, 2015¶
I started to work on the TODO list which I started yesterday.
Lino has another subtle feature:
lino.core.model.Model.set_widget_options(). I wanted this for
duration field of job
second usage example is the
number of a
Hah! The Python docs contained the explanation for a “mysterious” deadlock which had caused me some “fun” during the last days. Problem:
For some reason yet to be discovered, the following test snippets can cause doctest to enter an endless loop (while python manage.py show about.DetailLayouts or python manage.py show about.WindowActions work as expected).
The solution was in subprocess.Popen.wait():
This will deadlock when using stdout=PIPE and/or stderr=PIPE and the child process generates enough output to a pipe such that it blocks waiting for the OS pipe buffer to accept more data. Use communicate() to avoid that.
Fixed a bug in
could cause a subprocess to deadlock when it generated more output
than the OS pipe buffer would swallow.
I also noticed that I appearently re-run the process a second time when it returned with a non-zero code.
Result is visible in General overview of Lino Welfare