int closeImageClassification(void) { classifyImagePrepReload(); ci_object_pool_unregister(IMAGEDETECTEDCOUNT_POOL); ci_object_pool_unregister(IMAGEDETECTED_POOL); return CI_OK; }
void srvclamav_close_service() { free(scantypes); free(scangroups); ci_object_pool_unregister(AVREQDATA_POOL); destroy_virusdb(); }
int postInitImageClassificationService(void) { uint16_t category; ci_thread_rwlock_init(&imageclassify_rwlock); ci_thread_rwlock_wrlock(&imageclassify_rwlock); /*Initialize object pools*/ IMAGEDETECTED_POOL = ci_object_pool_register("image_detected_t", sizeof(image_detected_t) * num_image_categories); if(IMAGEDETECTED_POOL < 0) { ci_debug_printf(1, " srvclassify_init_service: error registering object_pool image_detected_t\n"); ci_thread_rwlock_unlock(&imageclassify_rwlock); return CI_ERROR; } IMAGEDETECTEDCOUNT_POOL = ci_object_pool_register("image_detected_count_t", sizeof(image_detected_count_t) * num_image_categories); if(IMAGEDETECTEDCOUNT_POOL < 0) { ci_debug_printf(1, " srvclassify_init_service: error registering object_pool image_detected_count_t\n"); ci_object_pool_unregister(IMAGEDETECTED_POOL); ci_thread_rwlock_unlock(&imageclassify_rwlock); return CI_ERROR; } if(num_image_categories) { for(category = 0; category < num_image_categories; category++) { if(ci_thread_mutex_init(&imageCategories[category].mutex) != 0) { ci_debug_printf(1, "srv_classify_image: Couldn't init category mutex\n"); } if(ci_thread_cond_init(&imageCategories[category].cond) != 0) { ci_debug_printf(1, "srv_classify_image: Couldn't init category condition lock variable\n"); } } } ci_thread_rwlock_unlock(&imageclassify_rwlock); return CI_OK; }
void url_check_close_service() { ci_object_pool_unregister(URL_CHECK_DATA_POOL); release_lookup_dbs(); }