Dash: now Dash does not require the backend PSGI server to have psgi.nonblocking feature. Still buggy with preforking servers, though...
Add xt/lens-destroy.t, which tests if a Lens object is destroyed properly.
Dash: lens is created for each request, and destroyed after the response is sent.
Revert the attempt to make Dash.pm friendly to blocking (synchronous) request handling and preforking.
It turned out to be very difficult to prefork Web Dash, because each preforked process must have separate connection to the DBus.
During the preparation of PSGI app, Net::DBus creates a connection to the session bus to gather Lens information.
That connection seems to persist after preforking, which causes buggy behaviors.
Unfortunately, there is no information about forking in Net::DBus documentation, so I just gave up.