The community Taskforce initiative has now come to a close.
Thanks to everyone who made thoughtful and genuine contributions to the website.
All submissions will be kept publically available for the forseeable future for reference purposes.

This website is part of the community Taskforce initiative

Submission details

189 +202/-13 votes

[!] Windows hangs for a while when performing disk operations [!]

Submitted by NIXin on November 2, 2008 to Bug, Usability

This is a severe low-level design problem. Applies to all of Windows and most software written for Windows. Vista made some progress with this, but still, it doesn't work as it should.
The problem:
Let's say you have a badly scratched CD (or even a good one, you'll still have to wait).
1. Put it in and close the tray.
2. Start "Computer"
3. You have to wait until the disk is finally read and initialized until you'll finally see all the icons and drives.

There are other examples of this. When you copy files from a crappy media, the whole explorer.exe process may hang for a while (so that includes your taskbar and desktop). Every file operation should be sandboxed (in separate process) so that when one operation has problems it doesn't stop other operations. That would also do good for problematic media and slow network connections. Another solution would be implementing asynchronous I/O (as chowmeined stated).

Here's a video for you to see what I mean:
http://www.youtube.com/watch?v=RaBfFNKvmXw

EDIT: Changed the topic name to something more meaningful.

Reimplement disk access.
Don't wait for one disk/network operation to complete in order to continue - multitask!
Asynchronous I/O is the answer here.

High

High

Not fixed

Discussion (11 comments)

NIXin wrote on November 2, 2008, 1:30pm

Changed problem description.

NIXin wrote on November 2, 2008, 1:31pm

Changed problem description.

NIXin wrote on November 2, 2008, 1:34pm

Changed title from [No sandbox for local and network disk operation] to [No sandbox for local and network disk operations].

GRiNSER wrote on November 2, 2008, 3:11pm

Thank's that finally someone posted this - this is somewhat annoying - I hate when the whole Explorer hangs just because of one of these operations mentioned.

NIXin wrote on November 2, 2008, 4:45pm

Changed problem description.

aatreya wrote on November 2, 2008, 6:28pm

This problem has existed for YEARS, and it is absolutely unacceptable.

HeresyProgram wrote on November 3, 2008, 3:45pm

Thank you, you're absolutely right.

steeeve wrote on November 3, 2008, 4:04pm

Totally agree.

NIXin wrote on November 3, 2008, 4:07pm

Changed title from [No sandbox for local and network disk operations] to [[!] Windows hangs for a while when performing disk operations [!]].
Changed problem description.
Changed solution description.

NIXin wrote on November 3, 2008, 4:10pm

Changed problem description.

sushovande wrote on November 4, 2008, 12:16am

This functionality already exists.. it is called Asynchronous I/O. If you give some thought to it - it is absolutely impossible to change the API to make existing apps responsive when waiting for I/O if they do not use this async API.

NIXin wrote on November 4, 2008, 12:51am

But it is possible to make programs integrated into windows (like explorer) responsive. See the video and you'll get what I mean (=> show the contents and then WAIT for response, not the other way around)

tino wrote on November 9, 2008, 6:59am

This is really annoying! Why can't the disc info be cached until you open the drive or really access it with an app or the Explorer?

Jones111 wrote on November 13, 2008, 11:20pm

You should add that the Computer folder should save the drives view and refresh it while showing the old ones.

d_e wrote on November 18, 2008, 3:21pm

NIXin, don't write about sandboxing, because that's obviously the wrong approach and tells a bit about your technical knowledge.

But I agree - Explorer should/could be more responsive.

NIXin wrote on December 2, 2008, 10:36pm

d_e: Why wrong approach? I know what sandboxing is. It's running something in a separated process that's completely unrelated to the parent. It doesn't have to run inside a virtual machine, just in a separated userspace so that won't interfere (in this case - won't freeze) with the parent or any other processes in the system.
Running an operation like that in a separated process might not be enough (it can still freeze a part of the base kernel, waiting for some information to continue) - that's why I proposed sandboxing that sort of operations.

xombie wrote on January 3, 2009, 8:38am

Whatever it's called, NIXin is right.

You might also be interested in...