Add a semaphore to some ML2 operations
Add a semaphore to some ML2 operations

This patch adds a semaphore for serializing the delete port API
calls and update_port_status calls to avoid simultaneous
attempts to acquire SQL update locks on the port table from
the same thread pool.

This semaphore has been introduced to avoid undesired eventlet
yields which trigger 'lock wait timeout' errors in the DB backend;
it should have a negligible impact on the overall performance.

Change-Id: I0ec947086e533945942ae93402943dec69b218ef
Partial-Bug: 1283522

gkotton/neutron,noironetworks/neutron,openstack/neutron,javaos74/neutron,redhat-openstack/neutron,leeseuljeong/leeseulstack_neutron,bgxavier/neutron,vbannai/neutron,CiscoSystems/neutron,klmitch/neutron,bgxavier/neutron,dims/neutron,watonyweng/neutron,magic0704/neutron,cisco-openstack/neutron,vijayendrabvs/hap,openstack/neutron,magic0704/neutron,projectcalico/calico-neutron,redhat-openstack/neutron,aristanetworks/neutron,sebrandon1/neutron,takeshineshiro/neutron,adelina-t/neutron,gkotton/neutron,wenhuizhang/neutron,bigswitch/neutron,openstack/neutron,cernops/neutron,cernops/neutron,barnsnake351/neutron,apporc/neutron,jumpojoy/neutron,vijayendrabvs/hap,sajuptpm/neutron-ipam,suneeth51/neutron,JianyuWang/neutron,watonyweng/neutron,cloudbase/neutron,vbannai/neutron,sajuptpm/neutron-ipam,glove747/liberty-neutron,eonpatapon/neutron,CiscoSystems/neutron,chitr/neutron,virtualopensystems/neutron,takeshineshiro/neutron,klmitch/neutron,asgard-lab/neutron,MaximNevrov/neutron,silenci/neutron,noironetworks/neutron,antonioUnina/neutron,javaos74/neutron,wolverineav/neutron,yuewko/neutron,leeseulstack/openstack,leeseuljeong/leeseulstack_neutron,gopal1cloud/neutron,igor-toga/local-snat,Stavitsky/neutron,JioCloud/neutron,chitr/neutron,paninetworks/neutron,Metaswitch/calico-neutron,SmartInfrastructures/neutron,wenhuizhang/neutron,mattt416/neutron,miyakz1192/neutron,yamahata/tacker,Stavitsky/neutron,dhanunjaya/neutron,neoareslinux/neutron,waltBB/neutron_read,sajuptpm/neutron-ipam,jumpojoy/neutron,eayunstack/neutron,apporc/neutron,mahak/neutron,eonpatapon/neutron,dims/neutron,alexandrucoman/vbox-neutron-agent,shahbazn/neutron,JioCloud/neutron,vveerava/Openstack,suneeth51/neutron,mmnelemane/neutron,infobloxopen/neutron,vveerava/Openstack,blueboxgroup/neutron,vveerava/Openstack,asgard-lab/neutron,infobloxopen/neutron,leeseulstack/openstack,wolverineav/neutron,paninetworks/neutron,sebrandon1/neutron,jacknjzhou/neutron,yanheven/neutron,pnavarro/neutron,NeCTAR-RC/neutron,silenci/neutron,vivekanand1101/neutron,rdo-management/neutron,glove747/liberty-neutron,swdream/neutron,cisco-openstack/neutron,CiscoSystems/neutron,SamYaple/neutron,blueboxgroup/neutron,igor-toga/local-snat,mandeepdhami/neutron,sasukeh/neutron,skyddv/neutron,virtualopensystems/neutron,eayunstack/neutron,gkotton/neutron,alexandrucoman/vbox-neutron-agent,leeseulstack/openstack,cloudbase/neutron-virtualbox,swdream/neutron,jerryz1982/neutron,SmartInfrastructures/neutron,jacknjzhou/neutron,bigswitch/neutron,mandeepdhami/neutron,pnavarro/neutron,yamahata/tacker,yuewko/neutron,huntxu/neutron,aristanetworks/neutron,JianyuWang/neutron,rdo-management/neutron,MaximNevrov/neutron,mattt416/neutron,Metaswitch/calico-neutron,leeseuljeong/leeseulstack_neutron,shahbazn/neutron,NeCTAR-RC/neutron,adelina-t/neutron,yamahata/neutron,gopal1cloud/neutron,sasukeh/neutron,mmnelemane/neutron,virtualopensystems/neutron,dhanunjaya/neutron,yamahata/tacker,vivekanand1101/neutron,mahak/neutron,yamahata/neutron,vbannai/neutron,blueboxgroup/neutron,vijayendrabvs/hap,jerryz1982/neutron,yamahata/neutron,cloudbase/neutron-virtualbox,cloudbase/neutron,waltBB/neutron_read,antonioUnina/neutron,barnsnake351/neutron,projectcalico/calico-neutron,huntxu/neutron,skyddv/neutron,miyakz1192/neutron,neoareslinux/neutron,yanheven/neutron,mahak/neutron,SamYaple/neutron