add greenthread.sleep to increase yields

This is a stopgap Havana release.  Add eventlet greenthread.sleep to
increase thread yields.

Partially fixes: 1230407
Partially fixes: 1224001

Change-Id: I18953cf8e457ebb33780817582b4788fb5ed6f73
This commit is contained in:
Mark McClain 2013-10-02 16:51:33 -04:00
parent 26290eae23
commit a77ee85bf1

View File

@ -15,6 +15,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from eventlet import greenthread
from oslo.config import cfg from oslo.config import cfg
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy.orm import exc from sqlalchemy.orm import exc
@ -146,14 +148,18 @@ class AgentDbMixin(ext_agent.AgentPluginBase):
res['heartbeat_timestamp'] = current_time res['heartbeat_timestamp'] = current_time
if agent.get('start_flag'): if agent.get('start_flag'):
res['started_at'] = current_time res['started_at'] = current_time
greenthread.sleep(0)
agent_db.update(res) agent_db.update(res)
except ext_agent.AgentNotFoundByTypeHost: except ext_agent.AgentNotFoundByTypeHost:
greenthread.sleep(0)
res['created_at'] = current_time res['created_at'] = current_time
res['started_at'] = current_time res['started_at'] = current_time
res['heartbeat_timestamp'] = current_time res['heartbeat_timestamp'] = current_time
res['admin_state_up'] = True res['admin_state_up'] = True
agent_db = Agent(**res) agent_db = Agent(**res)
greenthread.sleep(0)
context.session.add(agent_db) context.session.add(agent_db)
greenthread.sleep(0)
class AgentExtRpcCallback(object): class AgentExtRpcCallback(object):