#116 open
Jim Puls

Dropping a big/network folder causes a hang

Reported by Jim Puls | December 27th, 2010 @ 08:30 PM | in 0.0.4

What I did: I dropped a folder on the dock icon. This was a big folder from a network share.

What I expected to happen: "Fully concurrent — loading files, syntax highlighting, etc is distributed across available CPU cores. Minimal waiting time."

What actually happened: Main thread load. Hang until the recursive directory walk is done.

Comments and changes to this ticket

  • rsms

    rsms December 31st, 2010 @ 04:00 PM

    • Milestone set to 0.0.4
    • State changed from “new” to “open”
    • Tag changed from hang to bug, directory, io, reading, sidebar, spin
    • Milestone order changed from “75” to “0”

    This is due to Bad Code™ from my part. The whole "sidebar and directories" stuff is broken by design (ha, ha) since I just wanted to get a first quick and dirty version out there.

    Reading of directory contents should be performed using asynchronous operations. This could be solved in several ways, though there are two main alternatives:

    1. Reading-and-yielding on the main thread.

    2. Reading in a dispatch queue.

    I prefer (2) as it's both a simpler approach, provides for cleaner code and better harvests the performance of OS X. Note that reading directory contents requires the use of blocking syscalls, thus we will not be able to make this a truly asynchronous operation.

  • rsms

    rsms December 31st, 2010 @ 04:03 PM

    • Tag changed from bug, directory, io, reading, sidebar, spin to bug, directory, io, nodejs, reading, sidebar, spin

    Maybe we should even delegate this kind of work to the nodejs layer. It might be slightly slower as nodejs implementation of reading directory contents generates a high amount of queueing-dequeueing-performing-enqueueing-callingback operations, but it would make development easier.

  • prachu5

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

A text editor for Mac OS X

People watching this ticket

Attachments

Pages