एक मोनो-थ्रेडेड प्रोग्राम के निष्पादन मॉडल में, एसिंक्रोनस क्वेरी से वापस आने वाले डेटा, या आमतौर पर नेटवर्क सॉकेट से निष्पादन प्रवाह बाधित नहीं हो सकता है। केवल सिग्नल (SIGTERM
और दोस्त) प्रवाह को बाधित कर सकते हैं, लेकिन आने वाले डेटा से संकेतों को नहीं जोड़ा जा सकता है।
इसलिए आने वाले डेटा की सूचना पाने के लिए कॉलबैक करना संभव नहीं है। libpq में कोड का टुकड़ा जो कॉलबैक को उत्सर्जित करने के लिए आवश्यक होगा यदि आपका कोड इसे कॉल नहीं करता है तो वह कभी नहीं चलेगा। और अगर आपको इसे कॉल करना है, तो यह कॉलबैक के पूरे बिंदु को हरा देता है।
Qt
. जैसी लाइब्रेरी हैं जो कॉलबैक प्रदान करते हैं, लेकिन वे एक मुख्य लूप के साथ ग्राउंड अप से आर्किटेक्चर किए जाते हैं जो एक इवेंट प्रोसेसर के रूप में कार्य करता है। उपयोगकर्ता कोड को कॉलबैक में व्यवस्थित किया जाता है और आने वाले डेटा की घटना-आधारित प्रसंस्करण संभव है। लेकिन इस मामले में पुस्तकालय निष्पादन प्रवाह का स्वामित्व लेता है, जिसका अर्थ है कि इसका मेनलूप डेटा स्रोतों का चुनाव करता है। यह जिम्मेदारी को libpq के बाहर कोड के किसी अन्य भाग में स्थानांतरित कर देता है।