View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001950 | gnunet-gtk | gnunet-fs-gtk | public | 2011-11-22 20:31 | 2012-02-28 11:06 |
Reporter | Christian Grothoff | Assigned To | Christian Grothoff | ||
Priority | low | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | open | ||
Product Version | 0.9.0 | ||||
Target Version | 0.9.2 | Fixed in Version | 0.9.2 | ||
Summary | 0001950: show 'progress' dialog / window during directory scan for publishing | ||||
Description | For large directories, it can take a while for GNUnet to extract the meta data and scan the file structure. Instead of just blocking everything for 5 minutes without warning, we should display some kind of progress dialog with a progress bar indicating that we ARE in fact doing something. | ||||
Tags | No tags attached. | ||||
|
AFAIU, this requires certain APIs to be re-made in interator style: You create an object that stores the function's internal state, then start the function. It should do some work, getting to the next element, then save its state and schedule itself to be called again, and exit. The scheduler will process its queue, then run the scheduled function, which will continue its work, and then schedule itself again. It will do so, until it's finished. Before scheduling itself, the function will do a callback to check whether the original caller is still interested in its progress, this is used by the caller to be able to cancel the process, and to pulse the progress bar. That callback is also called (with an appropriate argument) to tell the caller that function is finished. The manner in which the function schedules itself may vary, which is why IT does the scheduling, not the caller, so, for example, the function might just schedule itself to be called again at the end of the queue, OR it might encounter a blocking I/O, and tell the scheduler to call it (or one of its helper callbacks) again once the I/O can be done [partially] without blocking. |
|
Yes, you're totally right. This is why it has not been done yet ;-). |
|
Fixed between r19139 and r19157 |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-11-22 20:31 | Christian Grothoff | New Issue | |
2011-11-22 20:38 | Christian Grothoff | Priority | normal => low |
2011-11-22 20:38 | Christian Grothoff | Status | new => confirmed |
2011-11-26 18:23 | Christian Grothoff | Relationship added | child of 0001966 |
2011-12-23 13:48 | LRN | Note Added: 0005175 | |
2011-12-23 13:59 | Christian Grothoff | Note Added: 0005178 | |
2012-01-16 13:35 | LRN | Note Added: 0005261 | |
2012-01-16 13:36 | LRN | Status | confirmed => resolved |
2012-01-16 22:06 | Christian Grothoff | Product Version | Git master => 0.9.0 |
2012-01-16 22:06 | Christian Grothoff | Fixed in Version | => 0.9.2 |
2012-01-16 22:06 | Christian Grothoff | Target Version | => 0.9.2 |
2012-02-12 21:25 | Christian Grothoff | Assigned To | => Christian Grothoff |
2012-02-28 11:06 | Christian Grothoff | Status | resolved => closed |