Skip to content

Commit 6f387ee

Browse files
committed
Fix for linux
1 parent 59efe3b commit 6f387ee

1 file changed

Lines changed: 33 additions & 64 deletions

File tree

cpu-miner.c

Lines changed: 33 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -56,70 +56,6 @@ static inline void drop_policy(void)
5656
#endif
5757
}
5858

59-
#ifdef __BIONIC__
60-
#define pthread_setaffinity_np(tid,sz,s) {} /* only do process affinity */
61-
#endif
62-
63-
static void affine_to_cpu_mask(int id, unsigned long mask) {
64-
cpu_set_t set;
65-
CPU_ZERO(&set);
66-
for (uint8_t i = 0; i < num_processors; i++) {
67-
// cpu mask
68-
if (mask & (1UL<<i)) { CPU_SET(i, &set); }
69-
}
70-
if (id == -1) {
71-
// process affinity
72-
sched_setaffinity(0, sizeof(&set), &set);
73-
} else {
74-
// thread only
75-
pthread_setaffinity_np(thr_info[id].pth, sizeof(&set), &set);
76-
}
77-
}
78-
79-
#elif defined(WIN32) /* Windows */
80-
static inline void drop_policy(void) { }
81-
static void affine_to_cpu_mask(int id, unsigned long mask) {
82-
if (id == -1)
83-
SetProcessAffinityMask(GetCurrentProcess(), mask);
84-
else
85-
SetThreadAffinityMask(GetCurrentThread(), mask);
86-
}
87-
#else
88-
static inline void drop_policy(void) { }
89-
static void affine_to_cpu_mask(int id, unsigned long mask) { }
90-
#endif
91-
92-
// static inline void affine_to_cpu(int id, int cpu)
93-
// {
94-
// cpu_set_t set;
95-
96-
// CPU_ZERO(&set);
97-
// CPU_SET(cpu, &set);
98-
// sched_setaffinity(0, sizeof(set), &set);
99-
// }
100-
// #elif defined(__FreeBSD__) /* FreeBSD specific policy and affinity management */
101-
// #include <sys/cpuset.h>
102-
// static inline void drop_policy(void)
103-
// {
104-
// }
105-
106-
// static inline void affine_to_cpu(int id, int cpu)
107-
// {
108-
// cpuset_t set;
109-
// CPU_ZERO(&set);
110-
// CPU_SET(cpu, &set);
111-
// cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, sizeof(cpuset_t), &set);
112-
// }
113-
// #else
114-
// static inline void drop_policy(void)
115-
// {
116-
// }
117-
118-
// static inline void affine_to_cpu(int id, int cpu)
119-
// {
120-
// }
121-
// #endif
122-
12359
enum workio_commands {
12460
WC_GET_WORK,
12561
WC_SUBMIT_WORK,
@@ -313,6 +249,39 @@ static pthread_mutex_t g_work_lock;
313249
static bool submit_old = false;
314250
static char *lp_id;
315251

252+
#ifdef __BIONIC__
253+
#define pthread_setaffinity_np(tid,sz,s) {} /* only do process affinity */
254+
#endif
255+
256+
static void affine_to_cpu_mask(int id, unsigned long mask) {
257+
cpu_set_t set;
258+
CPU_ZERO(&set);
259+
for (uint8_t i = 0; i < num_processors; i++) {
260+
// cpu mask
261+
if (mask & (1UL<<i)) { CPU_SET(i, &set); }
262+
}
263+
if (id == -1) {
264+
// process affinity
265+
sched_setaffinity(0, sizeof(&set), &set);
266+
} else {
267+
// thread only
268+
pthread_setaffinity_np(thr_info[id].pth, sizeof(&set), &set);
269+
}
270+
}
271+
272+
#elif defined(WIN32) /* Windows */
273+
static inline void drop_policy(void) { }
274+
static void affine_to_cpu_mask(int id, unsigned long mask) {
275+
if (id == -1)
276+
SetProcessAffinityMask(GetCurrentProcess(), mask);
277+
else
278+
SetThreadAffinityMask(GetCurrentThread(), mask);
279+
}
280+
#else
281+
static inline void drop_policy(void) { }
282+
static void affine_to_cpu_mask(int id, unsigned long mask) { }
283+
#endif
284+
316285
static inline void work_free(struct work *w)
317286
{
318287
free(w->txs);

0 commit comments

Comments
 (0)