From bbaa291de40ed74c5e5ebafe03bc13e458262e1c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 19 Jun 2015 07:31:29 +0530 Subject: [PATCH] Make the coffeescript compiler per thread --- src/calibre/utils/serve_coffee.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/calibre/utils/serve_coffee.py b/src/calibre/utils/serve_coffee.py index b0bc728519..40bb02b723 100644 --- a/src/calibre/utils/serve_coffee.py +++ b/src/calibre/utils/serve_coffee.py @@ -19,19 +19,20 @@ if sys.version_info.major > 2: raise SystemExit(1) import time, BaseHTTPServer, os, sys, re, SocketServer -from threading import Lock +from threading import Lock, local from SimpleHTTPServer import SimpleHTTPRequestHandler # Compiler {{{ -_compiler = None +tls = local() + def compiler(): - global _compiler - if _compiler is None: + ans = getattr(tls, 'compiler', None) + if ans is None: from duktape import Context - c = _compiler = Context() + c = tls.compiler = Context() c.eval(P('coffee-script.js', data=True).decode('utf-8')) - return _compiler + return tls.compiler def compile_coffeescript(raw, filename=None): from duktape import JSError