29.5. ó¸®ÁßÀÇ Äõ¸® Ãë¼Ò

º» Àý¿¡¼­ ¼³¸íÇÏ´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¿©, Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀº ¼­¹ö·Î ó¸® ÁßÀÎ Ä¿¸Çµå¸¦ Ãë¼ÒÇÏ´Â ¿ä±¸¸¦ ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

PQgetCancel

ƯÁ¤ÇÑ µ¥ÀÌÅͺ£À̽º Á¢¼ÓÀ» ÅëÇØ ¹ßÇàµÈ Ä¿¸Çµå¸¦ Ãë¼ÒÇϱâ À§ÇØ ÇÊ¿äÇÑ Á¤º¸¸¦ °¡Áö´Â µ¥ÀÌÅÍ ±¸Á¶¸¦ »ý¼ºÇÕ´Ï´Ù.

PGcancel *PQgetCancel(PGconn *conn);

PQgetCancel´Â ÁÖ¾îÁøPGconnÁ¢¼Ó ¿ÀºêÁ§Æ®ÀÇPGcancel ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. ÁÖ¾îÁøconn°¡ NULLÀ̳ª À߸øµÈ Á¢¼ÓÀ̾úÀ» °æ¿ì, NULLÀÌ ¹ÝȯµË´Ï´Ù. PGcancel¿ÀºêÁ§Æ®´Â ºÒÅõ¸íÇÑ ±¸Á¶·Î, ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ Á÷Á¢ ¾×¼¼½º ÇÒ ¼ö ¾ø´Â °ÍÀ» ¶æÇÕ´Ï´Ù. À̰ÍÀºPQcancel³ª PQfreeCancel¿¡ °Ç³×ÁÙ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù.

PQfreeCancel

PQgetCancel·Î »ý¼ºµÈ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÇØÁ¦ÇÕ´Ï´Ù.

void PQfreeCancel(PGcancel *cancel);

PQfreeCancel´Â »çÀü¿¡PQgetCancel·Î »ý¼ºµÈ µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®¸¦ ÇØÁ¦ÇÕ´Ï´Ù.

PQcancel

¼­¹ö¿¡ ÇöÀçÀÇ Ä¿¸ÇµåÀÇ Æó±â 󸮸¦ ¿ä±¸ÇÕ´Ï´Ù.

int PQcancel(PGcancel *cancel, char *errbuf, int errbufsize);

Ãë¼Ò ¿äûÀÌ ¼ö¶ôµÇ¸é 1À», ±×·¸Áö ¾ÊÀ¸¸é 0À» ¹ÝȯÇÕ´Ï´Ù. ½ÇÆÐÇßÀ» °æ¿ì, errbuf¿¡ ±× ¿øÀÎÀ» ³ªÅ¸³»´Â ¿¡·¯ ¸Þ¼¼Áö°¡ ä¿öÁý´Ï´Ù. errbuf´Â errbufsizeÅ©±âÀÇ ¹®ÀÚ ¹è¿­ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. (Ãßõ Å©±â´Â 256¹ÙÀÌÆ®ÀÔ´Ï´Ù. )

±×·¯³ª ¿äûÀÌ ¼ö¶ôµÆ´Ù°í ÇØµµ, ±× ¿äûÀÇ È¿°ú°¡ ³ª¿À´Â °ÍÀº ÀüÇô º¸ÁõµÇÁö ¾Ê½À´Ï´Ù. ¸¸¾à Ãë¼Ò ¿äûÀÌ À¯È¿Çϸé, ÇöÀçÀÇ Ä¿¸Çµå´Â ¸ÓÁö¾Ê¾Æ Áß´ÜµÇ¾î ¿¡·¯°¡ °á°úÀûÀ¸·Î µ¹¾Æ°©´Ï´Ù. Ãë¼Ò Á¶ÀÛ¿¡ ½ÇÆÐÇßÀ» °æ¿ì(Áï ¼­¹ö°¡ ¹ú½á Ä¿¸Çµå 󸮸¦ Á¾·áÇϰí ÀÖ¾ú±â ¶§¹®¿¡), ´«¿¡ º¸ÀÌ´Â °á°ú´Â ¾Æ¹«°Íµµ ³ª¿ÀÁö ¾Ê°Ô µË´Ï´Ù.

errbuf°¡ ½Ã±×³Î Çڵ鷯 ³»ÀÇ ·ÎÄà º¯¼öÀ̸é, PQrequestCancel´Â ½Ã±×³Î Çڵ鷯·ÎºÎÅÍ ±âµ¿Çصµ ¹®Á¦ ¾ø½À´Ï´Ù. PQcancelÀÇ ½ÇÇàÁß, PGcancel´Â read¸¸ÀÔ´Ï´Ù. µû¶ó¼­, PGconn¿ÀºêÁ§Æ®¸¦ Á¶ÀÛÇÏ´Â thread¿Í ´Ù¸¥ thread·ÎºÎÅÍ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

PQrequestCancel

¼­¹ö¿¡ ÇöÀçÀÇ Ä¿¸ÇµåÀÇ Æó±â 󸮸¦ ¿ä±¸ÇÕ´Ï´Ù.

int PQrequestCancel(PGconn *conn);

PQrequestCancel´Â PQcancelÀÇ º¯ÇüÀÌ¸ç ÆóÁöµÈ °ÍÀÔ´Ï´Ù. À̰ÍÀºPGconn¿ÀºêÁ§Æ®¸¦ Á÷Á¢ Ãë±ÞÇϰí, ½ÇÆÐÇßÀ» °æ¿ì ¿¡·¯ ¸Þ¼¼Áö´Â PGconn¿ÀºêÁ§Æ® ³»¿¡ ÀúÀåµË´Ï´Ù. (PQerrorMessage¿¡ ÀÇÇØ ²¨³¾ ¼ö ÀÖ½À´Ï´Ù. ) ±â´ÉÀûÀ¸·Î´Â µ¿ÀÏÇÏÁö¸¸, PGconnÀÇ ¿¡·¯ ¸Þ¼¼Áö°¡ °ãÃÄ ½áÁö´Â °ÍÀ¸·Î, ±× Á¢¼ÓÀ¸·Î ÇöÀç ÁøÇà ÁßÀÎ Á¶ÀÛÀÌ ¸Á°¡Á® ¹ö¸®±â ¶§¹®¿¡, ÀÌ ¹æ¹ýÀº º¹¼ö thread ÇÁ·Î±×·¥À̳ª ½Ã±×³Î Çڵ鷯¿¡¼­ ¹®Á¦°¡ ÀϾ´Ï´Ù.