[reportlab-users] Removal of global paraparser

Andy Robinson andy at reportlab.com
Mon Mar 18 08:14:43 EDT 2013

Feel free to change it to use thread locals if you want. Pdfmetrics is at least a 'known global' and not a stealth one. The global parser actually blew up for one paying client.

I have made pretty good experimental progress removing xmllib this morning! Not safe to commit yet but when done we should not need a reused parser...

Andy Robinson

On 18 Mar 2013, at 13:02, Robin Becker <robin at reportlab.com> wrote:

> On 17/03/2013 18:46, Andy Robinson wrote:

>> I have just committed a very small change which gets rid of the global

>> paragraph parser, and instantiates it for each Paragraph.



> the 'correct' way to do this would be to make the parser part of a thread locals variable. That way it would be instantiated once by each thread and not by each paragraph.


> It's never been exactly clear why we pay a penalty for importing threading etc etc, but I assume that's why we never created these variables that way.



>> We had a real-world case of threading problems which were probably

>> down to this.

> .....


> I suspect that all the other threading issues will now surface eg all the module level stuff in pdfbase/pdfmetrics.py.


> In addition none of our accelerators has any real notion of multi-threaded politeness. Hopefully that's enforced by python itself.

> --

> Robin Becker

More information about the reportlab-users mailing list