[oe] [PATCH 1/3] gitkpkgv: Ensure files are closed

Mike Looijmans mike.looijmans at topic.nl
Tue Jun 7 09:02:48 UTC 2016


Looks like regression in Python itself?

In both Python 2 and 3, the file is closed properly if the file object is not 
being stored:

 >>> import os
 >>> os.listdir('/proc/self/fd')
['0', '1', '2', '3']
 >>> l=open('/proc/self/stat').readline()
 >>> os.listdir('/proc/self/fd')
['0', '1', '2', '3']
 >>> f=open('/proc/self/stat')
 >>> os.listdir('/proc/self/fd')
['0', '1', '2', '3', '4']
 >>>


(file descriptor "3" is the one being used to read the /proc/self/fd 
directory, "4" is the one used for reading the stat file)

The "with" construction should not be needed here. Something else is causing 
this (e.g. nested function definition or exception handler?).

Mike.


On 02-06-16 11:34, Richard Purdie wrote:
> This avoids warnings with python 3.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
>   meta-oe/classes/gitpkgv.bbclass | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass
> index 1cba00c..4866fac 100644
> --- a/meta-oe/classes/gitpkgv.bbclass
> +++ b/meta-oe/classes/gitpkgv.bbclass
> @@ -87,11 +87,13 @@ def get_git_pkgv(d, use_tags):
>
>                       if commits != "":
>                           oe.path.remove(rev_file, recurse=False)
> -                        open(rev_file, "w").write("%d\n" % int(commits))
> +                        with open(rev_file, "w") as f:
> +                            f.write("%d\n" % int(commits))
>                       else:
>                           commits = "0"
>                   else:
> -                    commits = open(rev_file, "r").readline(128).strip()
> +                    with open(rev_file, "r") as f:
> +                        commits = f.readline(128).strip()
>
>                   if use_tags:
>                       try:
>



Kind regards,

Mike Looijmans
System Expert

TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail







More information about the Openembedded-devel mailing list