I am actively integrating XERCES into Perl5 on UNIX, using SWIG.
In order to get needed functionality (and experiment with the code), I
have created some InputSources based on the standard C++ stream classes,
specifically fstream and strstream. The resulting classes are called
"StrStreamInputSource" and "FStreamInputSource".
-- These classes work quite well from C++. -- However, when I
SWIG them into Perl5, they start acting up. Specifically, the InputSource
based on the istrstream class, "StrStreamInputSource". I can create an
StrStreamInputSource object just fine in Perl. However when I attempt to
pass it to a DOMParser object, the script goes into an everlasting sleep.
Specifically, it is blocking on a "read" operation call for an istrstream
object. This call occurs in the BinStreamInputStream class -- an
object of this class is returned by a call to "makeStream" on a
StrStreamInputSource object.
Here's the output from the "ps -aefl" command:
F S UID PID C PRI NI ADDR WCHAN CMD
000 S root 29698 7 78 0 - rt_sigsuspend perl ./DOMPrint3.pl