|
|
@@ -3243,42 +3243,6 @@ err_out:
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-struct swa {
|
|
|
- struct thr_info *thr;
|
|
|
- const struct work *work_in;
|
|
|
-};
|
|
|
-
|
|
|
-static void *swasync_thread(void *userdata)
|
|
|
-{
|
|
|
- struct swa *swa = (struct swa *)userdata;
|
|
|
-
|
|
|
- /* Return value ignored */
|
|
|
- submit_work_sync(swa->thr, swa->work_in);
|
|
|
- free(swa);
|
|
|
- return NULL;
|
|
|
-}
|
|
|
-
|
|
|
-static bool submit_work_async(struct thr_info *thr, const struct work *work_in)
|
|
|
-{
|
|
|
- pthread_t sw_thread;
|
|
|
- struct swa *swa;
|
|
|
-
|
|
|
- swa = malloc(sizeof(struct swa));
|
|
|
- if (unlikely(!swa)) {
|
|
|
- applog(LOG_ERR, "Failed to malloc swa in submit_work_async");
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- swa->thr = thr;
|
|
|
- swa->work_in = work_in;
|
|
|
-
|
|
|
- if (unlikely(pthread_create(&sw_thread, NULL, swasync_thread, (void *)swa))) {
|
|
|
- applog(LOG_ERR, "Failed to create swasync_thread");
|
|
|
- return false;
|
|
|
- }
|
|
|
- return true;
|
|
|
-}
|
|
|
-
|
|
|
bool submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce)
|
|
|
{
|
|
|
work->data[64+12+0] = (nonce>>0) & 0xff;
|
|
|
@@ -3469,7 +3433,7 @@ static void *miner_thread(void *userdata)
|
|
|
if (unlikely(rc)) {
|
|
|
if (opt_debug)
|
|
|
applog(LOG_DEBUG, "CPU %d found something?", dev_from_id(thr_id));
|
|
|
- if (unlikely(!submit_work_async(mythr, work))) {
|
|
|
+ if (unlikely(!submit_work_sync(mythr, work))) {
|
|
|
applog(LOG_ERR, "Failed to submit_work_sync in miner_thread %d", thr_id);
|
|
|
break;
|
|
|
}
|