Ctypes и alloc

В биндинге для Python libmapi (который я пишу, с использованием ctypes), возникла следующая задача: есть куски кода, где надо выделить память через вызовы talloc. Желательно, чтобы память сама освобождалась, когда переменная, в которой у меня указатель на эту структуру, исчезает.

Оказывается, в ctypes можно легко обернуть эти вызовы в свой класс и использовать обычный деструктор, чтобы это сделать. При этом, ctypes, чтобы получить внутреннее значение, просто берёт свойство «_as_parameter_» класса.

Получился вот такой код:

class mapi_talloc(object):
    def __init__(self, lib):
        self._lib = lib
        self._as_parameter_ = lib.talloc_init('python-mapi-object:' + str(hash(self)))

    def __del__(self):
        self._lib.talloc_free(self._as_parameter_)

Оставить комментарий

Сток

С bash.org.ru:

AndyK: интересно, когда называют магазин «стоковым», им в голову приходит, что это для них сток — завалявшийся на коллокейшен мерчендайз, а для нормального человека — стоковые воды? в принципе, ассоциация верна — туда стекается все говно, нераспроданное в других магазинах Aliv: ты чтооо! это модное слово! стильные люди понимают его праавильнаа!

Для нормального человека… Ну, видимо, я не нормальный. Для меня «сток» это противоположность «истоку». Наверное, потому что я учился на ВМК. В математике «сток» — завершающее событие в сетевом графике, это из теории графов.

10 комментариев