mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
Force usage of virThreadCreate
We want all threads to be set as workers or to have a job assigned to them, which can easily be achieved in virThreadCreate wrapper to pthread_create. Let's make sure we always use the wrapper. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
956953884e
commit
23d0c979f7
9
cfg.mk
9
cfg.mk
@ -999,6 +999,12 @@ sc_prohibit_sysconf_pagesize:
|
|||||||
halt='use virGetSystemPageSize[KB] instead of sysconf(_SC_PAGESIZE)' \
|
halt='use virGetSystemPageSize[KB] instead of sysconf(_SC_PAGESIZE)' \
|
||||||
$(_sc_search_regexp)
|
$(_sc_search_regexp)
|
||||||
|
|
||||||
|
sc_prohibit_pthread_create:
|
||||||
|
@prohibit='\bpthread_create\b' \
|
||||||
|
exclude='sc_prohibit_pthread_create' \
|
||||||
|
halt="avoid using 'pthread_create', use 'virThreadCreate' instead" \
|
||||||
|
$(_sc_search_regexp)
|
||||||
|
|
||||||
# We don't use this feature of maint.mk.
|
# We don't use this feature of maint.mk.
|
||||||
prev_version_file = /dev/null
|
prev_version_file = /dev/null
|
||||||
|
|
||||||
@ -1192,3 +1198,6 @@ exclude_file_name_regexp--sc_prohibit_virXXXFree = \
|
|||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_sysconf_pagesize = \
|
exclude_file_name_regexp--sc_prohibit_sysconf_pagesize = \
|
||||||
^(cfg\.mk|src/util/virutil\.c)$$
|
^(cfg\.mk|src/util/virutil\.c)$$
|
||||||
|
|
||||||
|
exclude_file_name_regexp--sc_prohibit_pthread_create = \
|
||||||
|
^(cfg\.mk|src/util/virthread\.c|tests/.*)$$
|
||||||
|
@ -374,7 +374,7 @@ procDHCPOpts(struct dhcp *dhcp, int dhcp_opts_len,
|
|||||||
* will require that the IP address was taken from an ARP packet or an IPv4
|
* will require that the IP address was taken from an ARP packet or an IPv4
|
||||||
* packet. Both flags can be set at the same time.
|
* packet. Both flags can be set at the same time.
|
||||||
*/
|
*/
|
||||||
static void *
|
static void
|
||||||
learnIPAddressThread(void *arg)
|
learnIPAddressThread(void *arg)
|
||||||
{
|
{
|
||||||
char errbuf[PCAP_ERRBUF_SIZE] = {0};
|
char errbuf[PCAP_ERRBUF_SIZE] = {0};
|
||||||
@ -638,8 +638,6 @@ learnIPAddressThread(void *arg)
|
|||||||
techdriver->applyDropAllRules(req->ifname);
|
techdriver->applyDropAllRules(req->ifname);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&req->thread, 0x0, sizeof(req->thread));
|
|
||||||
|
|
||||||
VIR_DEBUG("pcap thread terminating for interface %s\n", req->ifname);
|
VIR_DEBUG("pcap thread terminating for interface %s\n", req->ifname);
|
||||||
|
|
||||||
virNWFilterUnlockIface(req->ifname);
|
virNWFilterUnlockIface(req->ifname);
|
||||||
@ -648,8 +646,6 @@ learnIPAddressThread(void *arg)
|
|||||||
virNWFilterDeregisterLearnReq(req->ifindex);
|
virNWFilterDeregisterLearnReq(req->ifindex);
|
||||||
|
|
||||||
virNWFilterIPAddrLearnReqFree(req);
|
virNWFilterIPAddrLearnReqFree(req);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -686,6 +682,7 @@ virNWFilterLearnIPAddress(virNWFilterTechDriverPtr techdriver,
|
|||||||
enum howDetect howDetect)
|
enum howDetect howDetect)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
virThread thread;
|
||||||
virNWFilterIPAddrLearnReqPtr req = NULL;
|
virNWFilterIPAddrLearnReqPtr req = NULL;
|
||||||
virNWFilterHashTablePtr ht = NULL;
|
virNWFilterHashTablePtr ht = NULL;
|
||||||
|
|
||||||
@ -742,10 +739,10 @@ virNWFilterLearnIPAddress(virNWFilterTechDriverPtr techdriver,
|
|||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
goto err_free_req;
|
goto err_free_req;
|
||||||
|
|
||||||
if (pthread_create(&req->thread,
|
if (virThreadCreate(&thread,
|
||||||
NULL,
|
false,
|
||||||
learnIPAddressThread,
|
learnIPAddressThread,
|
||||||
req) != 0)
|
req) != 0)
|
||||||
goto err_dereg_req;
|
goto err_dereg_req;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -49,7 +49,6 @@ struct _virNWFilterIPAddrLearnReq {
|
|||||||
enum howDetect howDetect;
|
enum howDetect howDetect;
|
||||||
|
|
||||||
int status;
|
int status;
|
||||||
pthread_t thread;
|
|
||||||
volatile bool terminate;
|
volatile bool terminate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user