@@ -98,7 +98,7 @@ static inline int install_packages(list_t *list, const char *dir, int verbose) {
98
98
registry_package_ptr_t package_info = registry_manager_find_package (registries , package_id );
99
99
if (!package_info ) {
100
100
logger_error ("package-installer" , "Package %s not found in any registry." , package_id );
101
- return -1 ;
101
+ goto loop_cleanup ;
102
102
}
103
103
104
104
pkg = clib_package_new_from_slug_and_url (slug , registry_package_get_href (package_info ), verbose );
@@ -112,6 +112,7 @@ static inline int install_packages(list_t *list, const char *dir, int verbose) {
112
112
error = 0 ;
113
113
114
114
loop_cleanup :
115
+ free (package_id );
115
116
if (slug )
116
117
free (slug );
117
118
if (error ) {
@@ -300,7 +301,6 @@ int clib_package_install(clib_package_t *pkg, const char *dir, int verbose) {
300
301
char * package_json = NULL ;
301
302
char * pkg_dir = NULL ;
302
303
char * command = NULL ;
303
- int pending = 0 ;
304
304
int rc = 0 ;
305
305
int i = 0 ;
306
306
@@ -485,41 +485,25 @@ int clib_package_install(clib_package_t *pkg, const char *dir, int verbose) {
485
485
486
486
iterator = list_iterator_new (pkg -> src , LIST_HEAD );
487
487
list_node_t * source ;
488
- repository_file_handle_t * handles = malloc (pkg -> src -> len * sizeof (repository_file_handle_t ));
488
+ repository_file_handle_t * handles = malloc (max * sizeof (repository_file_handle_t ));
489
+ char * package_id = clib_package_get_id (pkg -> author , pkg -> repo_name );
490
+ // TODO, refactor this.
489
491
while ((source = list_iterator_next (iterator ))) {
490
- handles [i ] = repository_download_package_file (pkg -> url , clib_package_get_id (pkg -> author , pkg -> repo_name ), pkg -> version , source -> val , pkg_dir );
491
-
492
+ handles [i ] = repository_download_package_file (pkg -> url , package_id , pkg -> version , source -> val , pkg_dir );
492
493
if (handles [i ] == NULL ) {
493
494
list_iterator_destroy (iterator );
494
495
iterator = NULL ;
495
496
rc = -1 ;
496
497
goto cleanup ;
497
498
}
498
499
499
- #if defined(__unix__ ) || (defined(__APPLE__ ) && defined(__MACH__ ))
500
- struct timespec ts = {0 , 1000 * 1000 * 10 };
501
- nanosleep (& ts , NULL );
502
- #endif
503
-
504
500
#ifdef HAVE_PTHREADS
505
- if (i < 0 ) {
506
- i = 0 ;
507
- }
508
-
509
- (void ) pending ++ ;
510
-
511
501
if (i < max ) {
512
- ( void ) i ++ ;
502
+ i ++ ;
513
503
} else {
514
504
while (-- i >= 0 ) {
515
505
repository_file_finish_download (handles [i ]);
516
506
repository_file_free (handles [i ]);
517
- (void ) pending -- ;
518
-
519
- #if defined(__unix__ ) || (defined(__APPLE__ ) && defined(__MACH__ ))
520
- struct timespec ts = {0 , 1000 * 1000 * 10 };
521
- nanosleep (& ts , NULL );
522
- #endif
523
507
}
524
508
}
525
509
#endif
@@ -528,8 +512,6 @@ int clib_package_install(clib_package_t *pkg, const char *dir, int verbose) {
528
512
#ifdef HAVE_PTHREADS
529
513
while (-- i >= 0 ) {
530
514
repository_file_finish_download (handles [i ]);
531
-
532
- (void ) pending -- ;
533
515
repository_file_free (handles [i ]);
534
516
}
535
517
#endif
0 commit comments