~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/statement/replace_select.h

  • 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:
33
33
class ReplaceSelect : public Statement
34
34
{
35
35
public:
36
 
  ReplaceSelect(Session *in_session) :
37
 
    Statement(in_session)
38
 
  {
39
 
    getSession()->getLex()->sql_command= SQLCOM_REPLACE_SELECT;
40
 
  }
 
36
  ReplaceSelect(Session *in_session)
 
37
    :
 
38
      Statement(in_session)
 
39
  {}
41
40
 
42
41
  bool execute();
43
 
  bool isTransactional()
44
 
  {
45
 
    return true;
46
 
  }
47
42
};
48
43
 
49
44
} /* namespace statement */