A couple of things: you can > On Aug 18, 2015, at 9:29 AM, Maxthon Chan <m...@maxchan.info> wrote: > > Two questions: > > 1) How good will a Mac hold up as a server? I can serve static content from > the CDN I rented but CGIKit code is dynamic stuff. If a Mac and OS X holds > well, I can throw Linux compatibility out of the window and use GCD as I will. > 2) If a Mac does not fare well as a server, I will have to make sure my code > is compatible with GNUstep which is the best Cocoa clone for Linux I have > encountered so far - complete with ARC and Blocks but GCD support on GNUstep > is poor (and CoreFoundation support is spotty) so I have to avoid using GCD > completely and use CoreFoundation only sparsely. > >> On Aug 19, 2015, at 00:18, Simone Tellini <cocoa-...@tellini.info >> <mailto:cocoa-...@tellini.info>> wrote: >> >> Il giorno 18/ago/2015, alle ore 18:00, Maxthon Chan <m...@maxchan.info> ha >> scritto: >>> >>> So the first class that is required is the main application class >>> CGIApplication. Being the analogue of UIApplication it is a singleton. Is >>> this the proper way of doing it? I cannot use @synchronized yet because >>> there is nothing to lock on: >> >> if you used GCD, it would be simpler: >> >> + (instancetype)sharedInstance >> { >> static dispatch_once_t once; >> static id ret; >> >> dispatch_once( &once, ^{ >> ret = [[self alloc] init]; >> } ); >> >> return ret; >> } >> >> -- >> Simone Tellini >> http://tellini.infoIs this the proper way to initialise a singleton object >> in a thread-safe manner?
> A little bit background, I am rewriting my CGIKit Web development framework > for Objective-C and now Swift, and after the idea of building the Web > application into a loadable bundle that either a FastCGI-speaking cgikitd or > an Apache module mod_objc went up in smoke due to opening up serious security > bugs and lifecycle management issues, I am going back to the path of building > the Web application into an executable, now speaking FastCGI but not launched > by the Web server. > > I am modelling the HTTP protocol layer (CGIKit) after ASP.net > <http://asp.net/> and the Web layer (WebUIKit) after UIKit using bits and > pieces from Bootstrap+jQuery (which itself is just a big CSS+JS file) as > “controls”. However due to the fact that FastCGI event loop being part of the > protocol some CGIApplication (analogue of UIApplication) have to be placed in > CGIKit. UIKit’s non-atomic-ness is dropped and all operation have to be > atomic, since Web servers are expected to process multiple requests at the > same time. > > So the first class that is required is the main application class > CGIApplication. Being the analogue of UIApplication it is a singleton. Is > this the proper way of doing it? I cannot use @synchronized yet because there > is nothing to lock on: > > #import <pthread.h> > > pthread_mutex_t _CGI_ApplicationStartingMutex; > > @implementation CGIApplication > > + (void)initialize > { > pthread_mutex_init(&_CGI_ApplicationStartingMutex, NULL); > } > > + (instancetype)sharedApplication > { > if (!CGIApp) > { > pthread_mutex_lock(&_CGI_ApplicationStartingMutex); > if (!CGIApp) > { > CGIApp = [[CGIApplication alloc] init]; > } > pthread_mutex_unlock(&_CGI_ApplicationStartingMutex); > } > return CGIApp; > } > > @end_______________________________________________ _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com