void mf_callback_decompress_done_cb(void *data, Evas_Object *obj, void *event_info);
void mfSearchbarCancelCallBack(void *data, Evas_Object *obj, void *event_info);
void mf_callback_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void mf_callback_compress_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void mf_callback_decompress_cancel_cb(void *data, Evas_Object *obj, void *event_info);
void mf_callback_move_here_cb(void *data, Evas_Object *obj, void *event_info);
void mf_callback_paste_here_cb(void *data, Evas_Object *obj, void *event_info);
mf_file_compression_start(ap);
}
+void mf_callback_compress_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ mf_debug("cancel pthread now");
+ struct appdata *ap = (struct appdata *)data;
+ int ret = pthread_cancel(ap->thread);
+ SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+ mf_callback_cancel_cb(ap,NULL,NULL);
+}
+
+void mf_callback_decompress_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ mf_debug("cancel pthread now");
+ struct appdata *ap = (struct appdata *)data;
+ int ret = pthread_cancel(ap->thread1);
+ SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+ mf_callback_cancel_cb(ap,NULL,NULL);
+}
+
void mf_callback_cancel_cb(void *data, Evas_Object *obj, void *event_info)
{
MF_TRACE_BEGIN;
void mf_file_decompression_start(void *data)
{
struct appdata *ap = (struct appdata *)data;
- ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_DECOMPRESS, MF_LABEL_DECOMPRESSING, 10, mf_callback_cancel_cb, ap);;
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_DECOMPRESS, MF_LABEL_DECOMPRESSING, 10, mf_callback_compress_cancel_cb, ap);;
evas_object_show(ap->mf_MainWindow.pProgressPopup);
ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_decompress_pipe_cb, ap);
- pthread_t thread;
+ //pthread_t thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
int ret;
ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- pthread_create(&thread, &attr,(void *)& mf_callback_decompress_cb, (void *) ap);
- pthread_detach(thread);
+ pthread_create(&ap->thread1, &attr,(void *)& mf_callback_decompress_cb, (void *) ap);
+ pthread_detach(ap->thread1);
}
struct appdata *ap = (struct appdata *)data;
- ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_COMPRESS, MF_LABEL_COMPRESSING, 10, mf_callback_cancel_cb, ap);;
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_COMPRESS, MF_LABEL_COMPRESSING, 10, mf_callback_compress_cancel_cb, ap);;
evas_object_show(ap->mf_MainWindow.pProgressPopup);
ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_compress_pipe_cb, ap);
- pthread_t thread;
+ //pthread_t thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
int ret;
ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- pthread_create(&thread, NULL,(void *)& mf_callback_compress_cb, (void *) ap);
- pthread_detach(thread);
+ pthread_create(&(ap->thread), NULL,(void *)& mf_callback_compress_cb, (void *) ap);
+ pthread_detach(ap->thread);
}
/******************************