Opened 20 years ago
Last modified 17 years ago
#763 new enhancement
Update MapServer to use a re-entrant scanner (yylex)
Reported by: | sdlime | Owned by: | sdlime |
---|---|---|---|
Priority: | high | Milestone: | FUTURE |
Component: | MapServer C Library | Version: | unspecified |
Severity: | minor | Keywords: | |
Cc: |
Description (last modified by )
Recent versions of flex have the ability to create a re-entrant, that is thread-safe scanner. The thought is to embed the scanner structure (in lieu of global vars) in a MapServer object (e.g. scannerObj) and create it when the mapObj is initialized. The scanner would live within a mapObj instance or in our case clone. This means a single mapObj would NOT be thread-safe, but cloned mapObj's would. This is about as good as we're gonna get. Steve
Change History (3)
comment:1 by , 20 years ago
Cc: | removed |
---|
comment:2 by , 17 years ago
Description: | modified (diff) |
---|
comment:3 by , 17 years ago
Milestone: | → FUTURE |
---|
We spend so much time in the parser (at least potentially) that the locks can stack up and create a bottleneck. So, I think it makes sense to keep this around as a future feature... I actually don't think it's that hard, we'd just hand a parserObj off a mapObj to hold the flex/bison globals.
Steve
Note:
See TracTickets
for help on using tickets.
With the locking we have around the parser now, this isn't really much of an issue anymore, right?