check g_free_queue.head == NULL before free_queue_realloc()
parent
45e57c2bb0
commit
fb0162d769
3
HISTORY
3
HISTORY
|
|
@ -1,10 +1,11 @@
|
||||||
|
|
||||||
Version 1.28 2016-06-06
|
Version 1.28 2016-06-08
|
||||||
* id generator support extra bits
|
* id generator support extra bits
|
||||||
* change inet_aton to inet_pton
|
* change inet_aton to inet_pton
|
||||||
* connect by ip and connection pool support ipv6
|
* connect by ip and connection pool support ipv6
|
||||||
* id generator in php extension support multi instance
|
* id generator in php extension support multi instance
|
||||||
* add function http_parse_url_params
|
* add function http_parse_url_params
|
||||||
|
* check g_free_queue.head == NULL before free_queue_realloc()
|
||||||
|
|
||||||
Version 1.27 2016-04-15
|
Version 1.27 2016-04-15
|
||||||
* add function fd_set_cloexec
|
* add function fd_set_cloexec
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,8 @@ static int free_queue_realloc()
|
||||||
struct fast_task_info *free_queue_pop()
|
struct fast_task_info *free_queue_pop()
|
||||||
{
|
{
|
||||||
struct fast_task_info *pTask;
|
struct fast_task_info *pTask;
|
||||||
|
int i;
|
||||||
|
|
||||||
if ((pTask=task_queue_pop(&g_free_queue)) != NULL)
|
if ((pTask=task_queue_pop(&g_free_queue)) != NULL)
|
||||||
{
|
{
|
||||||
return pTask;
|
return pTask;
|
||||||
|
|
@ -420,6 +422,8 @@ struct fast_task_info *free_queue_pop()
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i=0; i<10; i++)
|
||||||
|
{
|
||||||
pthread_mutex_lock(&g_free_queue.lock);
|
pthread_mutex_lock(&g_free_queue.lock);
|
||||||
if (g_free_queue.alloc_connections >= g_free_queue.max_connections)
|
if (g_free_queue.alloc_connections >= g_free_queue.max_connections)
|
||||||
{
|
{
|
||||||
|
|
@ -431,7 +435,7 @@ struct fast_task_info *free_queue_pop()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (free_queue_realloc() != 0)
|
if (g_free_queue.head == NULL && free_queue_realloc() != 0)
|
||||||
{
|
{
|
||||||
pthread_mutex_unlock(&g_free_queue.lock);
|
pthread_mutex_unlock(&g_free_queue.lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -439,7 +443,13 @@ struct fast_task_info *free_queue_pop()
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&g_free_queue.lock);
|
pthread_mutex_unlock(&g_free_queue.lock);
|
||||||
|
|
||||||
return task_queue_pop(&g_free_queue);
|
if ((pTask=task_queue_pop(&g_free_queue)) != NULL)
|
||||||
|
{
|
||||||
|
return pTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _realloc_buffer(struct fast_task_info *pTask, const int new_size,
|
static int _realloc_buffer(struct fast_task_info *pTask, const int new_size,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue