docs: function createWorkerPool(options)
  {
  	var clientSet = new Set();
  	var clientArr = [];
  	var counter = 0;
  	var logConnection = getOption(options, 'logConnection', true);
  	
  	function resetClients()
  	{
  		if ( logConnection )
  		{
  			console.log('CLIENTS ' + clientSet.size);
  		}
  		clientArr = [];
  		if ( clientSet.size > 0 )
  		{
  			clientSet.forEach((client) => clientArr.push(client));
  		}
  	}
  	
  	function addClient(client)
  	{
  		clientSet.add(client);
  		resetClients();
  	}
  	
  	function deleteClient(client)
  	{
  		if ( clientSet.has(client) )
  		{
  			clientSet.delete(client);
  			resetClients();
  		}
  	}
  	
  	function getNextClient()
  	{
  		var idx = counter++ % clientArr.length;
  		return clientArr[idx];
  	}
  	
  	function sendRequest(cmd, args, body, timeout, callback)
  	{
  		if ( clientArr.length === 0 )
  		{
  			callback({code: '500', tid: 0, args: ['no_workers'], body: null, isValid: true});
  		}
  		else
  		{
  			getNextClient().sendRequest(cmd, args, body, timeout, callback);
  		}
  	}
  	
  	function sendMessage(cmd, tid, args, body)
  	{
  		if ( clientArr.length > 0 )
  		{
  			getNextClient().sendMessage(cmd, tid, args, body);
  		}
  	}
  	
  	function createSession(protocol, session_args)
  	{
  		if ( clientArr.length > 0 )
  		{
  			return getNextClient().createSession(protocol, session_args);
  		}
  		else
  		{
  			throw new Error('There is no worker(s) for session creating');
  		}
  	}
  	
  	function getPoolSize()
  	{
  		return clientSet.size;
  	}
  	
  	return {
  		addClient: addClient,
  		deleteClient: deleteClient,
  		getNextClient: getNextClient,
  		sendRequest: sendRequest,
  		sendMessage: sendMessage,
  		createSession: createSession,
  		getPoolSize: getPoolSize
  	};
  }