diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-06-07 17:43:52 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-06-07 17:43:52 +0300 |
commit | 863e395ad8bc0c921a9c836018e2c17262340f46 (patch) | |
tree | 1077f0622f1bb560e70324d3f1d4cf54586c4ca7 /source/blender/windowmanager/intern/wm_jobs.c | |
parent | e19686a35a7e12204117f871a04e6f6b5a71cc2b (diff) |
Cleanup: trailing space for windowmanager
Diffstat (limited to 'source/blender/windowmanager/intern/wm_jobs.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_jobs.c | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index 28f978909f7..3a4195ae1ae 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -78,10 +78,10 @@ struct wmJob { struct wmJob *next, *prev; - + /* job originating from, keep track of this when deleting windows */ wmWindow *win; - + /* should store entire own context, for start, update, free */ void *customdata; /* to prevent cpu overhead, use this one which only gets called when job really starts, not in thread */ @@ -95,14 +95,14 @@ struct wmJob { void (*free)(void *); /* gets called when job is stopped, not in thread */ void (*endjob)(void *); - + /* running jobs each have own timer */ double timestep; wmTimer *wt; /* the notifier event timers should send */ unsigned int note, endnote; - - + + /* internal */ void *owner; int flag; @@ -115,7 +115,7 @@ struct wmJob { /* once running, we store this separately */ void *run_customdata; void (*run_free)(void *); - + /* we use BLI_threads api, but per job only 1 thread runs */ ListBase threads; @@ -152,7 +152,7 @@ static void wm_job_main_thread_yield(wmJob *wm_job) static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const int job_type) { wmJob *wm_job; - + if (owner && job_type) { for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) if (wm_job->owner == owner && wm_job->job_type == job_type) @@ -168,7 +168,7 @@ static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const int job_type) if (wm_job->job_type == job_type) return wm_job; } - + return NULL; } @@ -183,7 +183,7 @@ static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const int job_type) wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type) { wmJob *wm_job = wm_job_find(wm, owner, job_type); - + if (wm_job == NULL) { wm_job = MEM_callocN(sizeof(wmJob), "new job"); @@ -198,7 +198,7 @@ wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char * WM_job_main_thread_lock_acquire(wm_job); } /* else: a running job, be careful */ - + /* prevent creating a job with an invalid type */ BLI_assert(wm_job->job_type != WM_JOB_TYPE_ANY); @@ -209,7 +209,7 @@ wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char * bool WM_jobs_test(wmWindowManager *wm, void *owner, int job_type) { wmJob *wm_job; - + /* job can be running or about to run (suspended) */ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) { if (wm_job->owner == owner) { @@ -227,10 +227,10 @@ bool WM_jobs_test(wmWindowManager *wm, void *owner, int job_type) float WM_jobs_progress(wmWindowManager *wm, void *owner) { wmJob *wm_job = wm_job_find(wm, owner, WM_JOB_TYPE_ANY); - + if (wm_job && wm_job->flag & WM_JOB_PROGRESS) return wm_job->progress; - + return 0.0; } @@ -248,30 +248,30 @@ double WM_jobs_starttime(wmWindowManager *wm, void *owner) char *WM_jobs_name(wmWindowManager *wm, void *owner) { wmJob *wm_job = wm_job_find(wm, owner, WM_JOB_TYPE_ANY); - + if (wm_job) return wm_job->name; - + return NULL; } void *WM_jobs_customdata(wmWindowManager *wm, void *owner) { wmJob *wm_job = wm_job_find(wm, owner, WM_JOB_TYPE_ANY); - + if (wm_job) return WM_jobs_customdata_get(wm_job); - + return NULL; } void *WM_jobs_customdata_from_type(wmWindowManager *wm, int job_type) { wmJob *wm_job = wm_job_find(wm, NULL, job_type); - + if (wm_job) return WM_jobs_customdata_get(wm_job); - + return NULL; } @@ -301,7 +301,7 @@ void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void (*free)(void * /* pending job? just free */ if (wm_job->customdata) wm_job->free(wm_job->customdata); - + wm_job->customdata = customdata; wm_job->free = free; @@ -333,10 +333,10 @@ void WM_jobs_callbacks(wmJob *wm_job, static void *do_job_thread(void *job_v) { wmJob *wm_job = job_v; - + wm_job->startjob(wm_job->run_customdata, &wm_job->stop, &wm_job->do_update, &wm_job->progress); wm_job->ready = true; - + return NULL; } @@ -345,7 +345,7 @@ static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test) { wmJob *wm_job; bool suspend = false; - + /* job added with suspend flag, we wait 1 timer step before activating it */ if (test->flag & WM_JOB_SUSPEND) { suspend = true; @@ -358,12 +358,12 @@ static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test) if (wm_job == test || !wm_job->running) { continue; } - + /* if new job is not render, then check for same startjob */ if (0 == (test->flag & WM_JOB_EXCL_RENDER)) if (wm_job->startjob != test->startjob) continue; - + /* if new job is render, any render job should be stopped */ if (test->flag & WM_JOB_EXCL_RENDER) if (0 == (wm_job->flag & WM_JOB_EXCL_RENDER)) @@ -378,7 +378,7 @@ static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test) } } } - + /* Possible suspend ourselves, waiting for other jobs, or de-suspend. */ test->suspended = suspend; // if (suspend) printf("job suspended: %s\n", test->name); @@ -396,11 +396,11 @@ void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job) // printf("job started a running job, ending... %s\n", wm_job->name); } else { - + if (wm_job->customdata && wm_job->startjob) { - + wm_jobs_test_suspend_stop(wm, wm_job); - + if (wm_job->suspended == false) { /* copy to ensure proper free in end */ wm_job->run_customdata = wm_job->customdata; @@ -408,20 +408,20 @@ void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job) wm_job->free = NULL; wm_job->customdata = NULL; wm_job->running = true; - + if (wm_job->initjob) wm_job->initjob(wm_job->run_customdata); - + wm_job->stop = false; wm_job->ready = false; wm_job->progress = 0.0; // printf("job started: %s\n", wm_job->name); - + BLI_threadpool_init(&wm_job->threads, do_job_thread, 1); BLI_threadpool_insert(&wm_job->threads, wm_job); } - + /* restarted job has timer already */ if (wm_job->wt == NULL) wm_job->wt = WM_event_add_timer(wm, wm_job->win, TIMERJOBS, wm_job->timestep); @@ -456,14 +456,14 @@ static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *wm_job) if (wm_job->endjob) wm_job->endjob(wm_job->run_customdata); } - + if (wm_job->wt) WM_event_remove_timer(wm, wm_job->win, wm_job->wt); if (wm_job->customdata) wm_job->free(wm_job->customdata); if (wm_job->run_customdata) wm_job->run_free(wm_job->run_customdata); - + /* remove wm_job */ wm_job_free(wm, wm_job); } @@ -472,17 +472,17 @@ static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *wm_job) void WM_jobs_kill_all(wmWindowManager *wm) { wmJob *wm_job; - + while ((wm_job = wm->jobs.first)) wm_jobs_kill_job(wm, wm_job); - + } /* wait until every job ended, except for one owner (used in undo to keep screen job alive) */ void WM_jobs_kill_all_except(wmWindowManager *wm, void *owner) { wmJob *wm_job, *next_job; - + for (wm_job = wm->jobs.first; wm_job; wm_job = next_job) { next_job = wm_job->next; @@ -495,7 +495,7 @@ void WM_jobs_kill_all_except(wmWindowManager *wm, void *owner) void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type) { wmJob *wm_job, *next_job; - + for (wm_job = wm->jobs.first; wm_job; wm_job = next_job) { next_job = wm_job->next; @@ -509,7 +509,7 @@ void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type) void WM_jobs_stop(wmWindowManager *wm, void *owner, void *startjob) { wmJob *wm_job; - + for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) { if (wm_job->owner == owner || wm_job->startjob == startjob) { if (wm_job->running) { @@ -523,7 +523,7 @@ void WM_jobs_stop(wmWindowManager *wm, void *owner, void *startjob) void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, short int *, short int *, float *)) { wmJob *wm_job; - + wm_job = wm->jobs.first; while (wm_job) { if (wm_job->owner == owner || wm_job->startjob == startjob) { @@ -542,7 +542,7 @@ void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, sho void wm_jobs_timer_ended(wmWindowManager *wm, wmTimer *wt) { wmJob *wm_job; - + for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) { if (wm_job->wt == wt) { wm_jobs_kill_job(wm, wm_job); @@ -557,18 +557,18 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) wmJob *wm_job, *wm_jobnext; float total_progress = 0.f; float jobs_progress = 0; - + for (wm_job = wm->jobs.first; wm_job; wm_job = wm_jobnext) { wm_jobnext = wm_job->next; - + if (wm_job->wt == wt) { - + /* running threads */ if (wm_job->threads.first) { /* let threads get temporary lock over main thread if needed */ wm_job_main_thread_yield(wm_job); - + /* always call note and update when ready */ if (wm_job->do_update || wm_job->ready) { if (wm_job->update) @@ -580,7 +580,7 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) WM_event_add_notifier(C, NC_WM | ND_JOB, NULL); wm_job->do_update = false; } - + if (wm_job->ready) { if (wm_job->endjob) wm_job->endjob(wm_job->run_customdata); @@ -589,7 +589,7 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) wm_job->run_free(wm_job->run_customdata); wm_job->run_customdata = NULL; wm_job->run_free = NULL; - + // if (wm_job->stop) printf("job ready but stopped %s\n", wm_job->name); // else printf("job finished %s\n", wm_job->name); @@ -603,10 +603,10 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) WM_job_main_thread_lock_release(wm_job); BLI_threadpool_end(&wm_job->threads); WM_job_main_thread_lock_acquire(wm_job); - + if (wm_job->endnote) WM_event_add_notifier(C, wm_job->endnote, NULL); - + WM_event_add_notifier(C, NC_WM | ND_JOB, NULL); /* new job added for wm_job? */ @@ -617,7 +617,7 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) else { WM_event_remove_timer(wm, wm_job->win, wm_job->wt); wm_job->wt = NULL; - + /* remove wm_job */ wm_job_free(wm, wm_job); } @@ -640,8 +640,8 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) } } } - - + + /* if there are running jobs, set the global progress indicator */ if (jobs_progress > 0) { wmWindow *win; @@ -656,7 +656,7 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) for (win = wm->windows.first; win; win = win->next) WM_progress_clear(win); } - + } bool WM_jobs_has_running(wmWindowManager *wm) |