~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/uuid_function/uuid_function.cc

  • Committer: Evan Jones
  • Date: 2011-01-02 18:30:08 UTC
  • mto: (2055.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 2056.
  • Revision ID: evanj@mit.edu-20110102183008-ytvoaig5zxdck3d5
libdrizzle: drizzle_state_read: only call recv() if data is available.

This uses the "read ready" flag that already exists to avoid excess system calls. Without this patch, in non-blocking mode after sending a command, libdrizzle immediately calls recv(), which almost always returns EAGAIN. This patch avoids that, instead returning IO_WAIT. This causes the caller to wait for data on the connection using poll() or epoll() before calling recv().

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
#include <config.h>
22
 
 
23
 
#include <drizzled/charset_info.h>
 
21
#include "config.h"
 
22
#include <drizzled/plugin/function.h>
 
23
#include <drizzled/item/func.h>
24
24
#include <drizzled/function/str/strfunc.h>
25
 
#include <drizzled/item/func.h>
26
 
#include <drizzled/plugin/function.h>
27
 
 
28
25
#include <uuid/uuid.h>
29
26
 
30
27
#define UUID_LENGTH (8+1+4+1+4+1+4+1+12)
85
82
  "UUID() function using libuuid",
86
83
  drizzled::PLUGIN_LICENSE_GPL,
87
84
  initialize, /* Plugin Init */
88
 
  NULL,   /* depends */
 
85
  NULL,   /* system variables */
89
86
  NULL    /* config options */
90
87
}
91
88
DRIZZLE_DECLARE_PLUGIN_END;