mirror of
https://github.com/owntone/owntone-server.git
synced 2025-05-04 00:40:35 -04:00
Remove EVLOOP_ONCE calls in filescanner
These calls generate error messages when the loop is already running, which will be the case when using init-rescan or full-rescan. The only purpose of these calls seems to be to check for exit signals from the main thread during a startup bulk scan, where the loop is not running yet. However, we can check for an exit signal by just setting/checking scan_exit. This commit also removes the unused filescanner_status().
This commit is contained in:
parent
d2d85b29f4
commit
94c5352db6
@ -656,9 +656,6 @@ process_deferred_playlists(void)
|
|||||||
free(pl->path);
|
free(pl->path);
|
||||||
free(pl);
|
free(pl);
|
||||||
|
|
||||||
/* Run the event loop */
|
|
||||||
event_base_loop(evbase_scan, EVLOOP_ONCE | EVLOOP_NONBLOCK);
|
|
||||||
|
|
||||||
if (scan_exit)
|
if (scan_exit)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -782,7 +779,6 @@ check_speciallib(char *path, const char *libtype)
|
|||||||
static void
|
static void
|
||||||
process_directory(char *path, int flags)
|
process_directory(char *path, int flags)
|
||||||
{
|
{
|
||||||
struct stacked_dir *bulkstack;
|
|
||||||
DIR *dirp;
|
DIR *dirp;
|
||||||
struct dirent buf;
|
struct dirent buf;
|
||||||
struct dirent *de;
|
struct dirent *de;
|
||||||
@ -796,24 +792,6 @@ process_directory(char *path, int flags)
|
|||||||
int type;
|
int type;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (flags & F_SCAN_BULK)
|
|
||||||
{
|
|
||||||
/* Save our directory stack so it won't get handled inside
|
|
||||||
* the event loop - not its business, we're in bulk mode here.
|
|
||||||
*/
|
|
||||||
bulkstack = dirstack;
|
|
||||||
dirstack = NULL;
|
|
||||||
|
|
||||||
/* Run the event loop */
|
|
||||||
event_base_loop(evbase_scan, EVLOOP_ONCE | EVLOOP_NONBLOCK);
|
|
||||||
|
|
||||||
/* Restore our directory stack */
|
|
||||||
dirstack = bulkstack;
|
|
||||||
|
|
||||||
if (scan_exit)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_SCAN, "Processing directory %s (flags = 0x%x)\n", path, flags);
|
DPRINTF(E_DBG, L_SCAN, "Processing directory %s (flags = 0x%x)\n", path, flags);
|
||||||
|
|
||||||
dirp = opendir(path);
|
dirp = opendir(path);
|
||||||
@ -835,6 +813,9 @@ process_directory(char *path, int flags)
|
|||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
if (scan_exit)
|
||||||
|
break;
|
||||||
|
|
||||||
ret = readdir_r(dirp, &buf, &de);
|
ret = readdir_r(dirp, &buf, &de);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
@ -1799,13 +1780,6 @@ exit_cb(int fd, short event, void *arg)
|
|||||||
scan_exit = 1;
|
scan_exit = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
filescanner_status(void)
|
|
||||||
{
|
|
||||||
return scan_exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Thread: main */
|
/* Thread: main */
|
||||||
int
|
int
|
||||||
filescanner_init(void)
|
filescanner_init(void)
|
||||||
@ -1909,6 +1883,8 @@ filescanner_deinit(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
scan_exit = 1;
|
||||||
|
|
||||||
ret = pthread_join(tid_scan, NULL);
|
ret = pthread_join(tid_scan, NULL);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
|
@ -18,9 +18,6 @@ filescanner_init(void);
|
|||||||
void
|
void
|
||||||
filescanner_deinit(void);
|
filescanner_deinit(void);
|
||||||
|
|
||||||
int
|
|
||||||
filescanner_status(void);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
filescanner_process_media(char *path, time_t mtime, off_t size, int type, struct media_file_info *external_mfi);
|
filescanner_process_media(char *path, time_t mtime, off_t size, int type, struct media_file_info *external_mfi);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user