EventLoopGroup cacheNioServerLoops() { EventLoopGroup eventLoopGroup = serverLoops.get(); if (null == eventLoopGroup) { EventLoopGroup newEventLoopGroup = new NioEventLoopGroup(workerCount, threadFactory(this, "nio")); if (!serverLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNioServerLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNioServerLoops() { EventLoopGroup eventLoopGroup = serverLoops.get(); if (null == eventLoopGroup) { EventLoopGroup newEventLoopGroup = new NioEventLoopGroup(workerCount, threadFactory(this, "nio")); if (!serverLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNioServerLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNioSelectLoops() { if (serverSelectLoops == serverLoops) { return cacheNioServerLoops(); } EventLoopGroup eventLoopGroup = serverSelectLoops.get(); if (null == eventLoopGroup) { EventLoopGroup newEventLoopGroup = new NioEventLoopGroup(selectCount, threadFactory(this, "select-nio")); if (!serverSelectLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNioSelectLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNioSelectLoops() { if (serverSelectLoops == serverLoops) { return cacheNioServerLoops(); } EventLoopGroup eventLoopGroup = serverSelectLoops.get(); if (null == eventLoopGroup) { EventLoopGroup newEventLoopGroup = new NioEventLoopGroup(selectCount, threadFactory(this, "select-nio")); if (!serverSelectLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNioSelectLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNativeServerLoops() { EventLoopGroup eventLoopGroup = cacheNativeServerLoops.get(); if (null == eventLoopGroup) { DefaultLoop defaultLoop = DefaultLoopNativeDetector.getInstance(); EventLoopGroup newEventLoopGroup = defaultLoop.newEventLoopGroup( workerCount, threadFactory(this, defaultLoop.getName())); if (!cacheNativeServerLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNativeServerLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNativeServerLoops() { EventLoopGroup eventLoopGroup = cacheNativeServerLoops.get(); if (null == eventLoopGroup) { DefaultLoop defaultLoop = DefaultLoopNativeDetector.getInstance(); EventLoopGroup newEventLoopGroup = defaultLoop.newEventLoopGroup( workerCount, threadFactory(this, defaultLoop.getName())); if (!cacheNativeServerLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNativeServerLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNativeSelectLoops() { if (cacheNativeSelectLoops == cacheNativeServerLoops) { return cacheNativeServerLoops(); } EventLoopGroup eventLoopGroup = cacheNativeSelectLoops.get(); if (null == eventLoopGroup) { DefaultLoop defaultLoop = DefaultLoopNativeDetector.getInstance(); EventLoopGroup newEventLoopGroup = defaultLoop.newEventLoopGroup( selectCount, threadFactory(this, "select-" + defaultLoop.getName())); if (!cacheNativeSelectLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNativeSelectLoops(); } return eventLoopGroup; }
EventLoopGroup cacheNativeSelectLoops() { if (cacheNativeSelectLoops == cacheNativeServerLoops) { return cacheNativeServerLoops(); } EventLoopGroup eventLoopGroup = cacheNativeSelectLoops.get(); if (null == eventLoopGroup) { DefaultLoop defaultLoop = DefaultLoopNativeDetector.getInstance(); EventLoopGroup newEventLoopGroup = defaultLoop.newEventLoopGroup( selectCount, threadFactory(this, "select-" + defaultLoop.getName())); if (!cacheNativeSelectLoops.compareAndSet(null, newEventLoopGroup)) { newEventLoopGroup.shutdownGracefully(); } eventLoopGroup = cacheNativeSelectLoops(); } return eventLoopGroup; }