Here's what I'm thinking, please yell if it sounds wrong. When we implement SSLClientSocket on linux, we can do it with one-thread-per-connection, or with nonblocking I/O. Since all socket I/O goes through the browser process, one thread per connection would limit us to however many stacks fit in the address space (on my box, with the default stack size, about 380). Seems obvious to me that we want nonblocking rather than one-thread-per-connection, but I figured I'd mention the choice before we start plunging into the port.
There's another design choice to make: whether to write an NSPR I/O layer so we can use our own TCPClientSocket for all network I/O, or bypass TCPClientSocket and let nss do its own I/O. Wan-teh suggests the latter is easier in http://developer.mozilla.org/En/PR_ImportTCPSocket but I think that requires us to use http://developer.mozilla.org/en/PR_Poll to do I/O multiplexing in MessagePumpForIO, and to base TCPClientSocket on NSPR. In previous discussion with Darin, it seemed we wanted to use epoll rather than poll. This implies that we want to not use NSPR for our network I/O, and thus implies that we want to write an NSPR I/O layer so we can do our own network I/O rather than letting nss do it via nspr. Happily, Howard Chu recently posted a partial example of how to do the latter, http://groups.google.com/group/mozilla.dev.tech.crypto/msg/af4b5b6c71b70702 I think the next step might be for me to write an app demonstrating how to handle 500 simultanous ssl connections using nss and libevent. Having done this once before with openssl, I expect this will be a pain. But what the heck, it should be fun, too. Whew. Thanks for reading, sorry it was so long. - Dan related issues: http://code.google.com/p/chromium/issues/detail?id=2134 http://code.google.com/p/chromium/issues/detail?id=1317 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-dev" group. To post to this group, send email to chromium-dev@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-dev?hl=en -~----------~----~----~----~------~----~------~--~---