On 06/14/2012 01:08 PM, Umberto Rustichelli aka Ubi wrote:
On 06/12/2012 06:37 PM, Bruno Jesus wrote:
On Tue, Jun 12, 2012 at 11:50 AM, Umberto Rustichelli aka Ubi
<[email protected]> wrote:
...
Jun 5 15:43:15 pes-app-blank-01 pcscd:
winscard_svc.c:106:CreateContextThread() SYS_ThreadCreate failed:
Cannot
allocate memory
Jun 5 15:43:15 pes-app-blank-01 pcscd:
pcscdaemon.c:151:SVCServiceRunLoop()
Problem during the context thread creation
...
Question 2: any clue about this issue???
You could try limiting the stack size for each thread to see if the
problem vanishes. Look for the functions pthread_attr_getstacksize and
pthread_attr_setstacksize in man and try using them where the threads
are created.
Read more at:
https://computing.llnl.gov/tutorials/pthreads/#Stack
Hope it helps.
Thak you very much everybody, I was going to recompile the glibc in
order to change that globally (yes, you guess right, I'm no thread
expert!), this helps me a lot; nevertheless, it could not solve.
A couple of questions about pcscd, then: I see that when I run an
application, 16 threads are consumed (I run, hope doing good: for FL
in `find /proc -iname cmdline` ; do grep pcscd ; done | wc).
I thought that threads were activated on a pre-need basis, but
apparently it is not (most likely because PCSCD cannot reasonably
handle them / not its job after the application starts).
I understand that this is governed by the defines in pcscd.h but which
one is setting that 16?
Is it PCSCLITE_MAX_APPLICATION_CONTEXTS? Or is it
PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS?
And, can I lower that or is there a specific reason to keep it?
Consider that the application is not accessing the reader / smart card
in parallel, it does one thing at a time.
Second question: what is the role of PCSCLITE_MAX_THREADS?
Cannot be a "global" limit because the threads I see in the system
already are more than that limit, so what?
Apparently, by changing the version of the smart card module (it's a
binary, not open source) the number of threads got drastically reduced
and I could at least pass a first test.
Questions now become:
1 - (curiosity still there, see questions in previous post):
what is the exact meaning of PCSCLITE_MAX_THREADS?
2 - can I actually reduce the number of threads spawned by
(each occurrence of) an application (a smart card module)
by tweaking the PCSCD headers?
I know that the threads are pcscd-related, so... is it
possible that the module really needs them?
3 - If so, how? Again... would my best guess be
PCSCLITE_MAX_APPLICATION_CONTEXTS or is it
PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS?
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle