Hi Markus, In data domenica 23 agosto 2009 19:45:48, Markus Meissner ha scritto: : > Hey Dario,
Ok, nice this makes one big new point on my todo list.
So did I understand you right and the problems only occur during a transaction? That means all the database-querying stuff works fine without further consideration in multi-threaded environments?
Yes, given that you control race conditions. Every function is not thread- safe.
But the idea of jailing the transaction in a separate process is quite interesting, but where is the point in putting alpm in a separate thread? Does this mean, that other non-transaction stuff also makes problems in some situations?
No, it does not; I just wanted to make sure that Aqpm was completely thread- safe, since with the old Shaman I had a problem with some race conditions making it crash on multiple queries. This point really depends on what is your final target: if you plan to develop a full-fledged frontend à-la-Shaman, my advice is to go for thread-safety. Python probably won't suffer from some problems I run into (and I wrote Shaman when I was much less capable of coding and less experienced, and you can tell it :) ), but the best way (to me) is to see first how pyalpmm reacts in multithreaded environments by making some unit tests, and then decide. This would save your time and prevent eventual future problems.
Greets Markus
Dario Freddi wrote:
Hi Markus,
I'm the main developer of Aqpm, a Qt/C++ wrapper of alpm, which is also the library behind Shaman. Your project seems great, and I hope somebody will use it to make something just as great!
However, I wanted to let you know that at the moment Alpm behaves strangely in multithreaded environments. Particularly (I don't know why and I did not investigate further), when running package scriptlets the operation will stall completely if more than one thread is active.
You might want to consider this in your library, in Aqpm there's no such problem as by using PolicyKit, transactions are always jailed in a different process which is of course single-threaded, and that's probably the only solution.
I would suggest you to make some tests of pyalpmm in multithreaded environments, since the highest barrier of alpm in GUI ambits is that it was not designed with thread usage in mind. Also have a look at Aqpm, which is completely thread-safe, as I jailed alpm as well in its very own thread, you might be tempted to adopt a similar solution.
Hope this helped you!
In data sabato 22 agosto 2009 16:45:14, Markus Meissner ha scritto: : > Hello pacman-dev list members,
I'm the developer (meissna) behind the python libalpm wrapper: pyalpmm You can find more information in this thread (1st post): http://bbs.archlinux.org/viewtopic.php?id=60711&p=1
As a very short abstract: pyalpmm implements a thin very high level wrapper around the alpm library written in python.
One of the main goals in the medium term are a transparent regular repos and aur support ... (like mixing aur and repo packaged in -S) Several steps are taken towards this goal, like building (mmacman -BI some_repo_or_aur_pkg) supports both transparently, searching ( mmacman -Ss query) also supports both: regular repos and aur. The next step is already the "-S functionality" milestone, which needs proper AUR pkg dependency resolution - this is in construction, or maybe "conception" ;)
And, dunno if this is usual, but one line about me personally: My name is Markus Meissner, living and studying in Germany/Frankfurt - right now I'm in Munich for my graduation and I'm 25years old...
So, hi all!
Greets Markus
-- ------------------- Dario Freddi KDE Developer GPG Key Signature: 511A9A3B