[Geany-devel] Request: multithreaded tag generation?

Lex Trotman elextr at xxxxx
Tue Nov 8 02:13:00 UTC 2011


[...]

> I suspect it's that TagManager, for every single tag, is inserting the tag
> into the tags array, removing duplicates, and then re-sorting the entire
> array.
>

All of the above prevent concurrent access :)

> The actual code/algos in use in TM is quite optimized, but I think the whole
> approach is flawed.
>
> The best way IMO would be to use a lightweight DB like SQLite, where you can
> slam a bunch of data into it while it's in memory and then deal with
> sorting/searching during the queries later (or rather let the DB engine deal
> with them).  IIUC, this would make threading much easier too, allowing one
> (or more) threads to be parsing and dumping tag info into the DB, while the
> UI is still running fine and seeing the new tags as they get inserted.  You
> could also flush the DB to disk and use it as an index, so next run, much
> less work needs to be done over.

Not so easy, from the sqlite faq:

(6) Is SQLite threadsafe?

    Threads are evil. Avoid them.

And what they don't mention is that you can deadlock your system if
the access isn't coordinated, ... back to square one.

> The chief benefit would of course be dropping all the TM code that no one
> really understands :)

For another bunch noone really understands </optimist> :)

Cheers
Lex



More information about the Devel mailing list