• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: CFSocket freezes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CFSocket freezes


  • Subject: Re: CFSocket freezes
  • From: Frank Illenberger <email@hidden>
  • Date: Sun, 27 Nov 2005 01:03:08 +0100

The launchd approach sounds interesting. I am developing a multithreaded application server. I have not worked much with launchd services, only wrote a very small one. I am wondering: For a launchd service, would it be possible to schedule its work onto several run loops/worker threads and to queue requests if all worker threads are busy?

Frank

Am 27.11.2005 um 00:50 schrieb Greg Herlihy:

I don't have specific suggestion with regards to this particular problem,
other than to suggest that CFSocket as high-level, client-oriented API might
not be the optimal API to use for a network server.


And in fact there is no need to write a network server at all on the Mac. It
is far easier for a program to offload the server portion of its execution
to either xinetd (pre-Tiger) or launchd (Tiger). With either of those two
system apps handling all the issues surrounding multiple connections,
diconnections, timeouts, SYN floods and other headaches, the program itself
simply has to be able to read and write standard I/O (printf statements and
the like) to get its job done.


And not only is an xinetd or launchd service far easier to write and to test
than a full blown server, but it also scales better, provides better
security, and makes more efficient use of the computer's resources. In fact
it is hard to think of any disadvantages with this approach.


Greg


On 11/25/05 1:22 PM, "Frank Illenberger" <email@hidden> wrote:

Hi,

I am developing a server using AsyncSocket/CFSocket wich is working
fine with only exception, that it freezes in the acceptor thread in a
call to CFWriteStreamOpen after having replied about 300-5000
requests. Sometimes it answers 100.000 requests without a problem but
50% of the time it freezes after 500 requests.
The stack trace of the frozen acceptor thread looks like this:


#0 0xffff85d8 in ___spin_lock_relinquish () at /System/Library/ Frameworks/System.framework/PrivateHeaders/ppc/cpu_capabilities.h:186 #1 0x90f1240c in _SocketStreamOpen () #2 0x9076c39c in _CFStreamOpen () #3 0x9076c314 in CFWriteStreamOpen () #4 0x10033f48 in -[AsyncSocket openStreamsAndReturnError:] (self=0x6ad8c30, _cmd=0x1005b800, errPtr=0x0) #5 0x100338dc in -[AsyncSocket doAcceptWithSocket:] (self=0x398a40, _cmd=0x1005b8a0, newNative=21) #6 0x100387e4 in -[AsyncSocket doCFSocketCallback:forSocket:withAddress:withData:] (self=0x398a40, _cmd=0x1005b4ac, type=kCFSocketAcceptCallBack, sock=0x399030, address=0x6ad9730, pData=0xf0080664) #7 0x10038b68 in MyCFSocketCallback (sref=0x399030, type=kCFSocketAcceptCallBack, address=0x6ad9730, pData=0xf0080664, pInfo=0x398a40) #8 0x90770944 in __CFSocketDoCallback () #9 0x90770668 in __CFSocketPerformV0 () #10 0x9075da5c in __CFRunLoopDoSources0 () #11 0x9075cf8c in __CFRunLoopRun () #12 0x9075ca0c in CFRunLoopRunSpecific () #13 0x928ea664 in -[NSRunLoop runMode:beforeDate:] () #14 0x9292f298 in -[NSRunLoop runUntilDate:] () #15 0x100394cc in -[WBLDefaultAdaptor runAcceptorThread] (self=0x38b280, _cmd=0x1005c354) #16 0x928db6d4 in forkThreadForFunction () #17 0x9002b200 in _pthread_body ()


Has anybody observed a similar behavior with CFSocket does anybody know a way to get around this? I am running 10.4.3.

Cheers

  Frank
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden



_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: CFSocket freezes
      • From: Greg Herlihy <email@hidden>
References: 
 >Re: CFSocket freezes (From: Greg Herlihy <email@hidden>)

  • Prev by Date: Re: CFSocket freezes
  • Next by Date: [solved] Re: Update NSMenu / NSMenuItem while they are displayed
  • Previous by thread: Re: CFSocket freezes
  • Next by thread: Re: CFSocket freezes
  • Index(es):
    • Date
    • Thread