2017-06-29 2 views
-1

I erstmals ausgeführt wird, es nur in Ordnung, die die zweiten gecrackt wird, und der Druckstapel Zerschlagung erkanntStapel wenn erstellen Pthread in Linux erkannt Zerschlagung

int update_scheduler(MYSQL* website_link) 
{ 
    if (mysql_query(website_link, UPDATE_SCHEDULER_SQL)) 
    { 
     printf("Query Failed:%s", mysql_error(website_link)); 
     return -1; 
    } 

    MYSQL_RES* result; 
    MYSQL_ROW row; 
    result = mysql_store_result(website_link); 

    while ((row = mysql_fetch_row(result))) 
    { 
     int task_type = atoi(row[1]), task_id = atoi(row[0]); 
     switch (task_type) 
     { 
      case 5: 
       create_task_thread(batch_send_email, task_id); 
       break; 
      case 10: 
       batch_send_sms(task_id); 
       break; 
      case 15: 
       batch_member_pay(task_id); 
       break; 
     } 
    } 

    mysql_free_result(result); 
    return 0; 
} 

int create_task_thread(void* (*task)(void*), int id) 
{ 
    pthread_t pid; 

    int rc; 
    rc = pthread_create(&pid, NULL, task, (void*)id); 

    if (rc) 
    { 
     write_log_pid(pid); 
     return -1; 
    } 
} 
+2

Verlinken Sie bitte nicht in Text als Bilder! – tofro

+0

sorry, sir.Ich bin neuer Vogel.Ich habe nicht genug Ruf, um ein Bild hinzuzufügen.Ich bin sehr leid. – linsir

+0

Aber Sie haben den Ruf, Text als Text einzufügen - was viel besser ist als jedes Bild. – tofro

Antwort

0

Schließlich fand ich pthread_slef() in der Thread-Funktion ist overflow.So GCC-Bericht Stapel zu zerschlagen.