libpq, blocking/nonblocking mechanism - Mailing list pgsql-interfaces

From Volkan YAZICI
Subject libpq, blocking/nonblocking mechanism
Date
Msg-id 7104a737050528133410045f04@mail.gmail.com
Whole thread Raw
Responses Re: libpq, blocking/nonblocking mechanism  (Terry Lee Tucker <terry@esc1.com>)
List pgsql-interfaces
Hi,

While I'm trying to figure out the point of PQsetnonblocking() call,
confused so much on blocking/nonblocking mechanism.

Sync. Connect » Async. Query
Async. Connect » Sync. Query

Both of above flows work without any PQsetnonblocking() call.
Therefore sync/async connection and sync/async query execution are not
dependent to each other. (Right?) If so, what's the point of
PQsetnonblocking() function? When do we require it and when should we
use it?

As I saw from src/interfaces/libpq/fe-exec.c, PQsetnonblocking() only
assigns True or False to conn->nonblocking variable. When I searched
for "->nonblocking" under libpq directory, I found that it's used
while creating an empty PGconn and while closing PGconn. This didn't
help me too.

I'd be so appreciated for a comprehensive "specialized for dummies" answer.
Regards.

P.S. Documentation pointers will be accepted with pleasure too.


pgsql-interfaces by date:

Previous
From: "Clay, Bruce"
Date:
Subject: Fw: PgOleDb / PostGis / PostgreSql interface problem
Next
From: Terry Lee Tucker
Date:
Subject: Re: libpq, blocking/nonblocking mechanism